我截断了一段代码,其中包括各种变体的mixin crtp和一些相关问题。我是否正确理解在下面的代码中,第二个构造函数只是将那些用于实例化X的类的实例的副本传递给那些完全相同的类的构造函数?
x: BehaviorSubject<{isValue: boolean, isValue2: boolean}>
= new BehaviorSubject({isValue: false, isValue2: true});
这种行为的用例是什么?此示例与以下代码段之间有什么区别?
template<class DerivedT>
struct CuriousBase{};
template<template<typename> typename... Features>
struct X : Features<X<Features...>> ... {
X() = default;
X(Features<X<Features...>> ...f) : Features<X<Features...>>(f)... {}
};
int main(){
auto x = X<CuriousBase>{};
}
两者都可以编译,但我认为,必须明确指定X本身是可变参数类模板,但这似乎不是必需的...
非常感谢帮助