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"
);
}
如何使静态断言起作用?重要的是类型是一个整数列表。干杯。
无需使用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()
永远不会失败。