Hmm.. I seem to be very terible at finding good boost documentation through google, but I found an example on a mailing list. Still, I can't quite get it to work...
template <class T>boost::shared_ptr<T>create(){ BOOST_STATIC_ASSERT(( boost::is_base_of<T, Parent>::value )); boost::shared_ptr<T> pointer( new T ); return pointer;}
rob@rob-laptop:~/Desktop$ g++ temp.cpptemp.cpp: In function ‘boost::shared_ptr<T> create() [with T = Child]’:temp.cpp:34: instantiated from heretemp.cpp:24: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE<false>’