ein*_*ica 5 c++ template-meta-programming c++11 template-instantiation
过去可以使用一些 C++ 编译器来检查模板类型是否已经被实例化,以便以下程序语法编译没有错误:
template <typename T> struct MyStruct { };
// some magic goes here
int main () {
static_assert(!is_instantiated<MyStruct<int>>(), "failure");
MyStruct<int> a;
static_assert(is_instantiated<MyStruct<int>>(), "failure");
}
Run Code Online (Sandbox Code Playgroud)
“魔法”在于这个问题的解决方案:
但是 - 这不再适用于最近的 GCC 和 Clang 版本(Godbolt.org)。此外,为该问题编写已接受答案的用户已离开 SO 并且不会更新它......
所以,我的问题是:是否有可能可靠地检查类/结构模板是否已为某种类型实例化?
笔记:
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |