原型大概是这样:
#include<random>
using std::mt19937;
using std::uniform_int_distribution;
class Datum3CH {
protected:
static mt19937 rng; // 就是这里,想做一个与对象无关的类成员变量,所有该类对象用同一个随机数生成器。
}
g++4.9 通过无问题。
vs2013 能通过编译,链接时显示:
error LINK2001: 无法解析的外部符号 public: static class std::mersenne_twister_engin<...> Datum3CH::rng*(?rng@?$Datum3CH@M@@2V?$.....)
大概,变量声明了但没找到定义,是这个问题。。。 但这个原因我搞不定。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.