我想知道如果它可以寫一種單元測試將驗證一個給定的代碼不編譯。
例如,我有一個模板類:
#include <boost/static_assert.hpp>
#include <boost/type_traits/is_base_of.hpp>
struct bar_base {};
template <typename T>
class foo
{
BOOST_STATIC_ASSERT(::boost::is_base_of<T, bar_base>::value);
};
所以,測試應成功:
struct bar_derived : bar_base {};
foo<bar_derived> f;
但應失敗:
struct bar_other {};
foo<bar_other> f;
任何想法如何實現這樣的行爲? (現在,我必須取消失敗代碼的註釋並手動驗證是否存在編譯錯誤 - 我想避免這種情況)
+1 - 很高興知道這一點。 – ChrisBD