假设我已经实现了一个这样的模板类:
template <size_t N> class C
{
void f()
{
// print out N here?
}
};
Run Code Online (Sandbox Code Playgroud)
我希望当编译器编译一个子句时
C<20> c;
Run Code Online (Sandbox Code Playgroud)
它会打印出一条消息
“C 类以 N = 20 为模板”
我试过 #pragma 和 static_assert 都是徒劳的。
问题是
有没有办法或没有办法?
谢谢。
由于编译时预处理器阶段发生在模板实例化之前,因此您不能让编译器根据模板使用预处理器指令执行的操作发出自定义消息。此外,C++ 模板虽然非常强大,但没有任何能力在编译时发出自定义消息。
| 归档时间: |
|
| 查看次数: |
2160 次 |
| 最近记录: |