如何在 Visual C++ 中编译期间输出编译时数值常量?
Visual C++ 有#pragma message
,它将字符串输出到编译器输出。现在我有一个工厂:
template<class Type>
CComPtr<Type> CreateComObject()
{
CComPtr<Type> newObject( new CComObject<Type> );
//do some tuning to the object
return newObject;
}
我想将传递给 new
的类的大小(即 sizeof( CComObject
输出到编译器输出中。看起来像#pragma message
仅接受字符串。
如何输出编译时数字常量?
Visual C++ has #pragma message
that outputs a string into compiler output. Now I have a factory:
template<class Type>
CComPtr<Type> CreateComObject()
{
CComPtr<Type> newObject( new CComObject<Type> );
//do some tuning to the object
return newObject;
}
and I want to output the size of class that is passed to new
(namely sizeof( CComObject<Type> )
into the compiler output. Looks like #pragma message
only accepts strings.
How can I output a compile-time numeric constant?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我正确理解你的问题,那么我认为你可以这样做:
sizeof(CComObject)
的值将在编译期间打印为警告消息。请参阅这个小演示:http://www.ideone.com/Diiqy
查看这些消息(来自上面的链接):
在 Visual Studio 中,您可以在“构建输出”选项卡中看到这些消息;它可能不会出现在错误列表>中警告选项卡。
这个想法取自我的另一个解决方案:
计算并在 C++ 编译时打印阶乘
If I understood your question correctly, then I think you can do this:
The value of
sizeof(CComObject<Type>)
will be printed as warning messages during compilation.See this small demo : http://www.ideone.com/Diiqy
Look at these messages (from the above link):
In Visual Studio, you can see these messages in the Build Output tab; it may not appear in Error List > Warnings tab.
The idea is taken from my another solution:
Calculating and printing factorial at compile time in C++