Справочная информация:
Я нашел этот удобный генератор случайных чисел и хотел создать для него файл заголовка:
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» требуется конечный тип возврата, чтобы компилятор мог решить, что это за тип.
E.g.:
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 ()?