0
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"
        );
    }

静的アサートを機能させるにはどうすればよいですか? 重要なことは、型が整数リストであることです。乾杯。

4

1 に答える 1

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()は決して失敗しません。

于 2013-09-09T00:54:42.867 に答える