template <typename T>
class Test
{
};
class A : public X;
class B;
Test<A> a; // OK
Test<B> b; // NOT OK
Run Code Online (Sandbox Code Playgroud)
我想完成这样的事情.
也许这可以更轻松地完成.基本上,我需要的是:模板类T应该能够在类型为T的对象中锁定std :: mutex成员m_mutex(如果存在).
使用静态断言和相应的类型特征类:
#include <type_traits>
template <typename T>
class Test
{
static_assert( std::is_base_of<X,T>::value, "T doesn't derive from X!");
};
Run Code Online (Sandbox Code Playgroud)
实例.