我正在嘗試一個簡單的C++屬性系統的實現,我發現它here。C++模板錯誤
但是代碼不會編譯。
template <class T, class Object, typename T (Object::*real_getter)()>
class ReadOnlyProperty
{
Object * my_object;
public:
void operator() (Object * obj)
{
my_object = obj;
}
T operator()() const
{
return (my_object->real_getter)();
}
T get() const
{
return (my_object->real_getter)();
}
void set(T const & value);
operator T() const {
return (my_object->*real_getter)();
}
typedef T value_type;
};
我在第一行得到多個錯誤。我使用的是Xcode 4,LLVM 2.1或GCC 4.2都不能編譯它。有什麼問題?
Mi也不是,也不相關,風格註釋:使用例如: 'operator ='''重置'你的代理而不是'operator()'。或者使用指定的成員(提供它也是常見的),例如'reset'通常用於智能指針。 –