我建立了一个帮助类,它将通过模板构造一个自定义类,这个自定义类必须继承某个类,我可以用std::is_base_of
来检查这个。静态声明为公共继承
但是我还需要检查继承是公共的,这怎么能实现呢?
作为参考,这里是一个精简版的类,我有std::is_base_of
在那里。
template<class CustomSink>
class Sink
{
static_assert(std::is_base_of<BaseSink, CustomSink>::value, "CustomSink must derive from BaseSink");
//Some static assert here to check if custom sink has publicly inherited BaseSink
//static_assert(is_public.....
public:
template<class... Args>
Sink(Args&&... args)
{
}
~Sink()
{
}
};
或者只是使用'std :: is_convertible '? – cpplearner