我有一个
Random
类,但我不知道如何正确初始化它的静态数据成员。// random.h
#pragma once
#include <random>
class Random
{
private:
static std::uniform_real_distribution<float> sDistribution_;
static std::mt19937 sGenerator_;
};
// random.cpp
#include "random.h"
std::mt19937 Random::sGenerator_(std::random_device()); // error here
std::uniform_real_distribution<float> Random::sDistribution_(0.0f, 1.0f);
当我编译这个代码时,我遇到了一个错误:
声明与
std::mt19937
不兼容。
我该如何正确初始化这个成员?
std::random_device()
更改为std::random_device{}()
。random_device
不是一个函数,而是一个类,所以你需要先创建一个实例,然后再调用它。 - Ted Lyngmo