0

次の関数を検討してください。

template<int N> f()
{
    if(N==5)
    {
        std::cerr << "N=5 is not supported!\n";
        abort();
    }
    do_real_work(N);
}

実行時エラー メッセージをコンパイル時エラーに変換するにはどうすればよいですか? C++11なら使えると思いますstatic_assertが、C++03はどうでしょうか?

4

3 に答える 3

2

使用できますBOOST.StaticAssert

#include <boost/static_assert.hpp>

BOOST_STATIC_ASSERT_MSG(N == 5, "N=5 is not supported!\n")
于 2013-10-19T13:44:22.877 に答える