2016-12-24 40 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); 

編譯錯誤,我得到的是(我使用視覺工作室13中的窗口7):

1> C^:\ boost \ boost_1_61_0 \ boost/random/variate_generator.hpp(59):error 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):error C2146:syntax error:missing';'之前標識符'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):error C2602:'boost :: random :: variate_generator :: result_type'不是成員(boost):: random :: variate_generator''的基類:1 2 3 4 5 6 7 8 9 10 1> C:\ boost \ boost_1_61_0 \ boost/random/variate_generator.hpp(59):error 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