2 つのクラス テンプレートTemplateA<T>
とTemplateB<T>
. ここで、 からへのTemplateB<T>
暗黙的な型変換を可能にするために、変換演算子を定義したいと思います。ただし、次のコードではコンパイル エラーが発生します。TemplateB<T>
TemplateA<T>
struct ClassA {};
template<typename T>
struct TemplateA {
T val;
};
template<typename T>
struct TemplateB {
T val;
template<typename ValT>
operator TemplateA() const {
TemplateA<ValT> a;
a.val = val;
return a;
}
};
int main() {
TemplateB<ClassA> b;
TemplateA<ClassA> a = b;
return 0;
}
エラー:
main.cpp:13:12: error: expected type-specifier before 'TemplateA'
operator TemplateA() const {
^