是否有一種方法使用C++概念來要求類是從模板化的類派生的,模板的模板參數(shù)又是來自另一個模板類的派生類。
Example:
template <class T>
class A{};
template <class T>
class B{};
class X{};
class Y : public A<X> {};
class Z : public B<Y> {};
我怎樣才能簽入B
,T
是std::is_base_of<A<X>,T>
形式的std::is_base_of<A<X>,T>
而不指定X
是什么?我不想將X
添加到B
的模板參數(shù)列表中,因?yàn)槲也幌敫?code>B派生自的每個實(shí)例的代碼(例如,class Z
的最后一行)。
如果你想特別檢查
A
的專業(yè)性,這并不太難。lambda基本上只是一個函數(shù)的簡寫,它被重載以接受
A
專門化。從這些專業(yè)中衍生出來的課程也算在內(nèi)。我們用我們正在檢查的類型的參數(shù)調(diào)用lambda。。。根據(jù)調(diào)用是否有效(參數(shù)是否被接受),該約束為true或false。然后,插上電源:
這里是現(xiàn)場直播。