2016-12-24 2 views
1

Могу я обратиться за помощью к проблеме, которую у меня есть. У меня есть TYPEDEFboost :: ошибка синтаксиса variate_generator

typedef boost::random::mt19937 my_rng; 
typedef boost::math::students_t my_st; 

, а затем следующее:

my_rng rng(0) ; 
    my_st st(3); 
    boost::random::variate_generator<my_rng&, my_st > noise(rng, st); 

Ошибка компиляции, что я получаю это (я использую Visual Studio 13 в окнах 7):

1> C : \ boost \ boost_1_61_0 \ boost/random/variate_generator.hpp (59): ошибка C2039: 'result_type': не является членом 'boost :: math :: students_t_distribution>' 1> .... \ test. cpp (183): см. ссылку на экземпляр шаблона шаблона 'boo st :: random :: variate_generator ' 1> C: \ boost \ boost_1_61_0 \ boost/random/variate_generator.hpp (59): ошибка C2146: синтаксическая ошибка: отсутствует'; ' перед идентификатором 'result_type' 1> C: \ boost \ boost_1_61_0 \ boost/random/variate_generator.hpp (59): ошибка C4430: отсутствует спецификатор типа - int. Примечание: C++ не поддерживает default-int 1> C: \ boost \ boost_1_61_0 \ boost/random/variate_generator.hpp (59): ошибка C2602: 'boost :: random :: variate_generator :: result_type' не является членом базовый класс 'boost :: random :: variate_generator' 1> C: \ boost \ boost_1_61_0 \ boost/random/variate_generator.hpp (59): см. объявление 'boost :: random :: variate_generator :: result_type' 1> C: \ boost \ boost_1_61_0 \ boost/random/variate_generator.hpp (59): ошибка C2868: 'boost :: random :: variate_generator :: result_type': незаконный синтаксис для использования-объявления; ожидаемое квалифицированное имя

Может кто-нибудь, пожалуйста, дайте мне несколько указателей, как исправить это. Заранее спасибо.

+0

Как вы перечислили ваши включенные? с '#include ' и '#include ' Я не получаю ошибок. MS v140. – lakeweb

ответ

0

boost:math::students_t не удовлетворяет концепции Random Distribution. Вместо этого используйте boost::random::student_t_distribution.