我为少数类型重载了typecast运算符。现在我想为所有其他类型转换调用特定函数。我该怎么办?
答案 0 :(得分:2)
明显但烦人的问题。
在typename
中缺少operator T()
。
template <T>
operator T();
需要
template <typename T>
operator T();
访问问题。
将class Foo
更改为struct Foo
或将功能设为public
。
在课程定义的末尾缺少;
。
主要问题是您无法专门化成员函数模板。但是,您可以以相同的效果重载它们。
struct Foo {
template <typename T>
operator T();
operator int();
operator char();
};