有时我会看到某些项目在编译期间会在输出中写入内容。
如何在MSVC ++中实现
谢谢!
答案 0 :(得分:13)
使用#pragma message
例如
#define MESSAGE(t) message(__FILE__ "(" STRINGXXX(__LINE__) ") : " t)
#define STRINGXXX(x) STRINGYYY(x)
#define STRINGYYY(x) #x
然后如果你把
#pragma MESSAGE("TODO: testing")
它将像普通编译器消息一样显示为可点击消息
答案 1 :(得分:6)
您希望在源代码中包含以下内容:
#pragma message("Hello World")
答案 2 :(得分:2)
您可以在其中一个源文件中使用#pragma message在预处理该文件时输出字符串。
此外,当执行自定义,预建或后构建步骤时,“描述”字段将回显到标准输出。
答案 3 :(得分:1)
正如Timo Geusch所说:#pragma message
指令用于此。
作为模板元编程的一种奇特的副作用,它也可以使用编译器作为计算器:)
template<int i> struct Message;
template<int i> struct Fac {
static const int v = i * Fac< i-1 >::v;
};
template<> struct Fac<1> { static const int v = 1; };
Message< Fac<10>::v > m;
将导致输出消息
Line 10: error: aggregate 'Message<3628800> m' has incomplete type and cannot be defined