【发布时间】:2018-11-13 07:10:43
【问题描述】:
背景:
我找到了这个方便的随机数生成器,并想为它制作一个头文件: http://www.cplusplus.com/reference/random/
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1,6);
auto dice = std::bind ( distribution, generator );
int wisdom = dice()+dice()+dice();
但是,在 C++11 中,返回类型为“auto”的函数声明需要尾随返回类型,以便编译器可以决定类型是什么。 例如:
auto foo(int a, int b) -> decltype(a*b);
问题:
看来我的标题几乎需要与函数本身一样长才能确定类型:
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1,6);
auto roll() -> decltype(distribution(generator));
问题:
有没有办法确定使用“auto”类型的函数声明(在标头中)的完整返回类型? 如果不是,我的 dice() 标头应该是什么样的?
【问题讨论】:
标签: c++11 header-files forward-declaration auto function-declaration