用于重复使用std::xyz语句的C++宏

C++ macro for repeated using std::xyz statements

本文关键字:xyz 语句 C++ std 用于      更新时间:2023-10-16

有时我的文件看起来是这样的:

using std::cout;
using std::endl;
using std::string;
using std::vector;
using std::size_type;

有没有可能以某种方式避免每次都写公共部分?类似这样的东西:

USING(std, cout, endl, string, vector, size_type);

我在考虑一个var arg宏,但不知道是否可以迭代这些var args。。

您可以使用namespace进行编码,其中需要std::coutstd::endlstd::。。。

示例:

#include <iostream>
namespace my {
  using std::cout;
  using std::endl;
}
int main() {
  using namespace my;
  cout << "hello" << endl;
}

不幸的是,没有一种方法可以对宏执行您想要的操作:(在最好的情况下,你可能会用稍微"减少"你的工作量

USESTD(a) using std::a;

但是。。。不确定这是否值得,从我的角度来看,Chirs的观点很好:)-我也喜欢看看事情是从哪里来的!