【发布时间】:2015-12-08 09:28:29
【问题描述】:
假设我们有需要检查模板参数类型的结构(wchar_t 只是一个示例):
template <typename T>
struct Foo {
static_assert(std::is_same<T, wchar_t>::value, "Failure");
}
当然下面的代码不会编译:
Foo<int> foo;
但是如何防止编译:
using foo = Foo<int>;
?
【问题讨论】:
-
只要实例化 foo(类型别名),也是一样的。只要您不实例化它,编译器就不会“生成”代码并且不会检查断言。
标签: c++ templates c++11 typetraits c++17