Concat用于预定义的宏
Concat for predefined macros
我想从__FILE__
、__FUNCTION__
和__LINE__
中创建一个预定义的宏字符串。
#define LOG_LINE __FILE__ " " __FUNCTION__ " " __LINE__
这可能不起作用,因为编译器concat不能处理__LINE__
所代表的整数。#define LOG_LINE __FILE__ __FUNCTION__
也不起作用,因为:error: expected ';' before '__FUNCTION__'
如何实现std::cout << LOG_LINE
,它将扩展到例如main.cpp main 8
?
解决方案:#define LOG_LINE __FILE__ << " " << __FUNCTION__
不能满足我,因为有时我想把它用作字符串(带sstream的大宏也不是有效的解决方案;)。
您可以使用以下内容:
#define LOG_LINE (std::string(__FILE__ " ") + __FUNCTION__ + " " + std::to_string(__LINE__))
实例
相关文章:
- 根据预定义的值生成字符列表
- 如何在 c++ 中按预定义的顺序循环浏览类实例?
- 如何从预定义的数组创建某些元素数组
- 重新定义预定义的 errno 错误消息 (E2BIG)
- 在C++中将(预定义的)原子值添加到矢量
- 有没有办法制作一个 c++ 宏(或类似的东西),它使用户语句被 while 循环的预定义函数包围?
- 如何使用 strcmp 将字符串与预定义字符串进行比较
- 如何为缺少预定义运算符而不扩展命名空间"std"的标准类型定义运算符>> (istream &, ...)?
- 在多个对象中初始化预定义成员变量的正确方法是什么?
- 我们如何在c 中序列化或应对类的对象.是否有任何预定义的库
- 如何将预定义数据类型的值存储到数组中并输出它
- 将预定义的颜色添加到简单的C++颜色类
- 具有多个属性的预定义运算符
- 使用特征的预定义列表将矩阵替换为对角矩阵
- 如何存储根据日期排序的预定义值在C 中排序
- 在预定义的注册表密钥手柄上调用regclosekey
- vector<T>::p ush_back 用于预定义的构造函数?
- Concat用于预定义的宏
- 用于固定大小和预定义类型数据的C++向量、列表或数组
- Initializer_list用于预定义大小的数组