MyClass::MyClass(std::list<int> const& some_sequence)
{
static_assert(
std::is_same<decltype(some_sequence),std::list<int>>::value ,
"some_sequence should be an integer list"
);
}
如何使静态断言工作?重要的是类型是整数列表。 欢呼声。
答案 0 :(得分:5)
无需使用static_assert(...)
:编译器将确保使用std::list<int>
调用此函数。如果要编译上面的代码,则需要使用
MyClass::MyClass(std::list<int> const& some_sequence)
{
static_assert(
std::is_same<decltype(some_sequence),std::list<int> const&>::value ,
"some_sequence should be an integer list"
);
}
some_sequence
被声明为std::list<int> const&
,这是decltype(some_sequence)
获得的类型。但是,static_assert()
永远不会失败。