Re[2]: MSVC-11.0 и type deduction в шаблонных функциях
От: FrozenHeart  
Дата: 19.02.14 19:50
Оценка:
MTW> Можно перенести параметры шаблона из типа класса в его operator()
MTW> При вызове функции компилятор делает автовывод.

Вы об этом?

class get_random_number
{
public:
  template <
    typename RangeType
    , typename RngType = std::mt19937
    , typename DistributionType = std::uniform_int_distribution<RangeType>
  >
  typename RngType::result_type operator()(RangeType range_start, RangeType range_end)
  {
    std::random_device rd;
    RngType gen(rd());
    DistributionType dist(range_start, range_end);
    return dist(gen);
  }
};


Если да, то я же сказал:

Проблема в том, что данный код необходимо компилировать, помимо всего прочего, в MSVC-11.0, который не разрешает использовать аргументы по умолчанию в шаблонных функциях


Например, вышеприведённый код при попытке компиляции при помощи MSVC-11.0 выдаёт следующую ошибку:

error C4519: default template arguments are only allowed on a class template

avalon/1.0.434
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.