繼承我要代表這樣一個層次結構: template<typename T>
struct X
{
};
template<typename Derived = void>
struct Y : Y<void>
{
//Note: not trying to use SFINAE here
using DerivedType = typename std::enabl
讓我們假設原來我有使用CRTP瞭如下設計: template<class Outputter> class Generator {
protected:
vector<int> v;
private:
void work(ostream& out) {
// perform first part of some complex operations on v
我試圖實現CRTP接口到我的代碼,但約束讓我卡住了。如何實現約束如果我有代碼結構看起來像這樣?這合法嗎?謝謝。 interface IInterface<T>
where T: IInterface<T>
{
//bla bla bla
T Member { get; set; }
}
interface ITest1<iTest2, iTest1> : IIn