default_random_engine プライベート フィールドを持つクラスを作成しようとしています。ただし、このクラスはコンパイルされません。私の簡単なコンソール プログラム コードは次のとおりです。
// RngTest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <ctime>
#include <random>
using namespace std;
class MyClass
{
private:
default_random_engine Rng;
public:
MyClass(void)
: Rng(time(NULL))
{
}
~MyClass(void)
{
}
void Seed(unsigned int seed)
{
Rng.seed(seed);
}
};
int _tmain(int argc, _TCHAR* argv[])
{
MyClass rng;
rng.Seed(100);
return 0;
}
Visual Studio 2010 (静的標準ライブラリ、MFC/ATL なし、コンソール プロジェクト) では、次のコンパイル エラーが表示されます。
c:\program files (x86)\microsoft visual studio 10.0\vc\include\random(1604): エラー C2064: 用語が 0 引数を取る関数に評価されない 1>
c:\users\vitaliy\documents\visual studio 2010 \projects\rngtest\rngtest\rngtest.cpp(25) : 関数テンプレートのインスタンス化への参照を参照してください_Cx,_Lx>::seed(_Gen &,bool)' コンパイル中
このようなコンパイルの失敗の理由は何ですか? Visual C++ 2010 で default_random_engine プライベート フィールドを使用する方法はありますか?