Possible Duplicate:
Unit test compile-time error
I'm wondering if its possible to write a kind of unit test which will verify that a given code doesn't compile.
For example, I have a template class:
#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);
};
So, the test should succeed with:
struct bar_derived : bar_base {};
foo<bar_derived> f;
but should fail with:
struct bar_other {};
foo<bar_other> f;
Any ideas how to achieve such a behaviour? (For now, I have to uncomment the failing code and verify manually that there are compile errors - I want to avoid that)