2
CRTP를 사용하고 있으며 기본 클래스에 템플릿 함수가 있습니다. use
템플릿이 파생 된 클래스의 멤버 함수는 어떻게합니까?템플릿 멤버 함수와 함께 'using'지시문이 작동하는 방식
template <typename T>
struct A {
int f();
template <typename S>
int g();
};
struct B: public A<B> {
int h() { return f() + g<void>(); } // ok
};
template <typename T>
struct C: public A<C<T>> {
// must 'use' to get without qualifying with this->
using A<C<T>>::f; // ok
using A<C<T>>::g; // nope
int h() { return f() + g<void>(); } // doesn't work
};
는 * 편집 * 이전 질문, 의견을 포함 Using declaration for type-dependent template name는, 이것이 가능하지 않은 표준의 감독이 될 수 있습니다 제안합니다.
예, 다른 두 문장은'using '을 사용하지 않고 g에 액세스하는 방법이지만 둘 다 꽤 귀찮습니다! 나는'템플리트'의 마법 주문을 피하면서 그들을 피할 수 있기를 바랬다. –