다음 구조를 가진 클래스 집합이 있습니다.유형 목록에서 상속하고 상속 된 멤버 목록에서 멤버를 호출하는 방법?
class U
{
public:
explicit U(int) { ... }
U() {...}
Init(int) {...}
};
이 클래스 중 하나 이상을 클래스 X로 작성할 수 있어야합니다. 의사 코드 :
template<class TypeSequence>
class X that derives publicly from all the classes in TypeSequence
{
X(int): all bases are initialized with the integer passed
{}
//if the above constructor is impossible, then the following will do as well:
X(int)
{
Call Init on all bases and pass the given int to them.
}
};
mpl이 많이 필요하지만 실제로 잘하지 않습니다. 내가 할 수있는 일은 무엇입니까? 코드 샘플은 훌륭합니다.
내 오류 : 언급을 잊어 버렸습니다. C++ 11 기능을 사용할 수 없습니다. MPL 솔루션을 찾고 있습니다.
+1 좋은 질문을. 그런데 믹스 인에 대해 들어 보셨습니까? 어쩌면 여기에 적용 할 수 있습니까? 아니면 그 변형 일 수 있습니까? – Nawaz
이전에 [Boost.MPL] (http://www.boost.org/libs/mpl/)을 사용하여이 작업을 수행했지만 코드를 작성하지 않아도됩니다. 지금 당장 풀 답변. 아무도 그때까지 대답하지 않으면 나는 오늘 밤 이것을 다시 살펴볼 것입니다. 힌트로서, 템플릿 인자로 두 개의 'boost :: mpl :: vector <>'이터레이터를 취하는 특별한 믹스 인을 생각해 낸다. – ildjarn
U는 TypeSequence와 어떤 관련이 있습니까? –