prog.cpp:9:13: error: ‘result_type’ does not name a type
prog.cpp:9:13: note: (perhaps ‘typename std::unary_function<_Arg, _Result>::result_type’ was intended)
編譯: http://ideone.com/vttG8W不能使用來自的std :: unary_function繼承的typedef
爲什麼我不能直接使用result_type的?
#include <functional>
using namespace std;
template <typename ARGUEMENT, typename RESULT>
class FunctorBase : public std::unary_function<ARGUEMENT, RESULT>
{
public:
virtual result_type operator() (argument_type) = 0;
FunctorBase() {}
virtual ~FunctorBase() {}
};
int main()
{
FunctorBase<int&, void>();
}
第一行寫着'類型定義模板...',而不是'的typedef typename的...'。 – 2013-03-21 16:32:57
哎呀。我沒有測試過的那一行是一個簡單的錯誤。 =) 感謝您指出。 – 2013-03-21 16:37:46