我建立了一個幫助類,它將通過模板構造一個自定義類,這個自定義類必須繼承某個類,我可以用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