我可以请求帮助解决我遇到的问题 . 我有typedef
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);
我得到的编译错误是(我在Windows 7中使用visual studio 13):
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):参见类模板实例化'boost :: 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'不是a的成员'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':using-declaration的非法语法;预期的合格名称
有人可以给我一些指示如何解决这个问题 . 提前致谢 .
1 回答
boost:math::students_t
不满足Random Distribution
的概念 . 请改用boost::random::student_t_distribution
.