0
비 타입 템플릿 매개 변수와 함께 템플릿 클래스에 함수 템플릿을 전문 : 나는 이제 함수 템플릿 validateType()C++ - 나는 클래스 템플릿 푸가
template <class T>
bool validateType() {
return false;
}
이
template <class A, A value, class B>
class Foo {};
및 I Foo를 포함하여 일부 유형에 대해 특수화하여 함수가 컴파일 타임 중에 일부 static_asserts를 수행하도록하려고합니다.
template <class A, class B, Foo<A, A val, B>>
bool validateType() {
// do some static asserts
}
이 : 나는이 시도
error: wrong number of template arguments (2, should be 3)
template <class A, class B, Foo<A, A val, B>>
^~
note: provided for ‘template<class A, A value, class B> class Foo’
class Foo {};
^~~
error: two or more data types in declaration of ‘validateType’
bool validateType() {
^
error: expected ‘>’ before ‘{’ token
bool validateType() {
^
을 그리고 두 번째 경우에 나는
error: non-class, non-variable partial specialization ‘validateType<Foo<A, val, B> >’ is not allowed
bool validateType<Foo<A, val, B>>() {
^
를 얻을 : 첫 번째에서
template <class A, A val, class B>
bool validateType<Foo<A, val, B>>() {
// do some static asserts
}
를, 컴파일러는 말한다
어떻게해야합니까?