【发布时间】:2015-06-02 11:43:30
【问题描述】:
在this answer 我创建了一个类型特征:
template<typename T>
using to_string_t = decltype(to_string(declval<T>()));
这很好用,但我最初打算使用result_of,现在我不知道该怎么做,这让我很恼火。
我正在尝试将上面的行替换为以下内容:
template<typename T>
using to_string_t = result_of<to_string(T)>;
但是我得到一个编译器错误:
错误 C2275:“T”:非法将此类型用作表达式
注意:参见“T”的声明
错误 C2974:“std::result_of”:“_Fty”的模板参数无效,需要键入
我尝试了几个其他输入 result_of 都没有成功,谁能帮我理解 result_of 在这里期待什么参数?
【问题讨论】:
标签: c++ typetraits overloading decltype result-of