繁体   English   中英

Concat用于预定义的宏

Concat for predefined macros

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想从__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的大宏也不是有效的解决方案;)。

1 个回复

您可以使用以下内容:

#define LOG_LINE (std::string(__FILE__ " ") +  __FUNCTION__ + " " + std::to_string(__LINE__))

现场例子

2 Scala注释宏仅适用于预定义的类

注意:下面有一个EDIT! 注意:下面还有另一个编辑! 我已经编写了一个Scala注释宏,该宏正在传递给一个类并创建(或填充)一个case对象。 案例对象的名称与传递的类的名称相同。 更重要的是,对于传递的类的每个字段,case对象中将有一个同名字段。 但是,case对象的字段都是 ...

3 如何使用argv [1]作为预定义的宏?

[在POSIX中编码,在Ubuntu中使用Geany] 我有以下类: main.c , Ac , Ah ,其中main被包含在main.c中。 我使用Ac中的宏(即#define PNUM 10开始了所有项目。 我已经定义了结构,几个数组,创建了线程等等,最终当我完成所有工作后,我决定 ...

4 Flex删除预定义的宏

我有以下flex来源: 我通过flex flextest.l命令生成一个C文件,并使用gcc -o fltest lex.yy.c编译结果。 令我惊讶的是,我得到以下输出: 经过进一步检查,问题似乎在于flex实际上__unix__用空字符串替换了__unix__ ,如下所 ...

5 Gitlab CI Runner预定义宏MSBuild

嗨,我正尝试在Gitlab运行程序安装程序的MSBuild过程中使用环境变量,以传递CI_PIPELINE_ID和CI_COMMIT_SHA来构建具有增量生成ID的应用程序,并提交sha来跟踪二进制版本。 我的.gitlab-ci.yml配置如下: 在我的c ++项目中,我需要做些 ...

6 用于区分 arm-none-eabi-gcc 和 gcc 的预定义宏

我正在构建我自己的库,它应该可以在 arm mbed 和 linux 平台上运行。 如果目标是 ARM mbed,那么库需要用arm-none-eabi-gcc交叉编译,如果目标平台是 linux,库需要用gcc 。 是否有预定义的编译器宏可以让我确定调用哪个编译器来编译库? 请注意,还需要支持具有 ...

7 C++11 预定义宏

为了代码可以识别标准,是否有任何预定义的 C++ 宏? 例如,目前大多数编译器将“array”放入“tr1”文件夹中,但对于 C++11,它将成为 STL 的一部分。 所以目前 但是 C++11 什么是 03 标准和 11 标准的预定义宏,以便我可以使用#ifdef进行识别? 另外,我想 ...

2011-08-28 21:15:16 4 15240   c++/ c++11
8 函数名__func__的预定义宏

我正在尝试构建一个调试日志消息函数,该函数记录调用日志消息的位置的文件,行和函数。 上面的代码适用于某些编译器,但不是全部。 我的代码需要与GCC以及Microsoft Visual工作室交叉兼容。 我已添加以下定义以帮助兼容性。 上面代码片段的问题在于#else宏在所有编译 ...

9 如何为nvcc添加预定义宏?

我目前正在编译一个将OpenMesh和CUDA集成在一起的Qt项目。 由于必须使用nvcc来编译项目,因此我从OpenMesh中发现了一个错误: 由于编译器是nvcc而不是vc编译器,即使我在“预处理器定义”中添加了宏,该错误仍然会出现。 我只是想知道是否有办法为nvcc添加此宏? ...

10 我可以用什么预定义的宏来检测clang?

我正在尝试检测用于编译源代码的编译器。 我可以很容易地找到预定义的宏来检查MSVC或GCC(例如参见http://predef.sourceforge.net/ ),但我找不到任何宏来检查clang。 有人知道clang是否定义了像__CLANG__类的宏来了解当前正在编译我的代码的内容 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM