c ++编译错误'参数'声明为函数返回一个函数

时间:2016-09-30 01:37:50

标签: c++ compiler-errors most-vexing-parse

#include <random>

int main()
{
    using namespace std;
    mt19937_64 gen1(random_device()());//fail?
    mt19937_64 gen2((random_device()()));//success
    mt19937_64 gen3{ random_device()() };//success
    mt19937_64 gen4(random_device{}());//success
    return 0;
}

http://ideone.com/ukudui

编译器在下面给我这些信息,但我仍然不明白为什么我的代码是非法的:

prog.cpp:在函数'int main()'中:

prog.cpp:6:33:错误:'参数'声明为函数返回函数

mt19937_64 gen(random_device()());

0 个答案:

没有答案