我不喜欢using namespace std,但我也厌倦了键入std::在每一条战线cout,cin,cerr和endl.所以,我想给他们这样简短的新名字:
// STLWrapper.h
#include <iostream>
#include <string>
extern std::ostream& Cout;
extern std::ostream& Cerr;
extern std::istream& Cin;
extern std::string& Endl;
// STLWrapper.cpp
#include "STLWrapper.h"
std::ostream& Cout = std::cout;
std::ostream& Cerr = std::cerr;
std::istream& Cerr = std::cin;
std::string _EndlStr("\n");
std::string& Endl = _EndlStr;
Run Code Online (Sandbox Code Playgroud)
这有效.但是,上面有什么问题我错过了吗?有没有更好的方法来实现同样的目标?
我对如何通过使用可变参数模板从元组中读取每个参数感到有点困惑.
考虑这个功能:
template<class...A> int func(A...args){
int size = sizeof...(A);
.... }
Run Code Online (Sandbox Code Playgroud)
我从主文件中调用它,如:
func(1,10,100,1000);
Run Code Online (Sandbox Code Playgroud)
现在,我不知道如何扩展主体func以便能够单独读取每个参数,以便我可以,例如,将参数存储在数组中.
为什么线程从未作为C++标准的一部分包含在内?首次创建C++标准时它们不存在吗?