use*_*572 6 c++ gcc g++ result-of c++11
在g++ -std=c++0x'ing之后std::result_of产生以下错误消息
error: ‘result_of’ in namespace ‘std’ does not name a type
Run Code Online (Sandbox Code Playgroud)
(SUSE上的g ++版本4.5.0.)
足以重现错误的相关代码段如下
#include <random>
#include <type_traits>
using namespace std;
class Rnd{
protected:
static default_random_engine generator_;
};
template<class distribution>
class Distr: Rnd{
distribution distribution_;
public:
typename std::result_of<distribution(default_random_engine)>::type
operator() (){ return distribution_(default_random_engine); }
};
Run Code Online (Sandbox Code Playgroud)
此外,我试图从维基百科或cpluplus.com编译示例无济于事.这是特定编译器的问题还是我做错了什么?