誰かがこのスレッドに出くわしている場合は、最近可能でブーストを必要としない簡単な回答を投稿しています。これは古い Eigen Bugzilla Reportで見つけました。次の簡単な方法を提案した著者 Gael Guennebaud の功績はすべて次のとおりです。
#include <Eigen/Sparse>
#include <iostream>
#include <random>
using namespace Eigen;
int main() {
std::default_random_engine generator;
std::poisson_distribution<int> distribution(4.1);
auto poisson = [&] (int) {return distribution(generator);};
RowVectorXi v = RowVectorXi::NullaryExpr(10, poisson );
std::cout << v << "\n";
}
int
この例では使用されていませんが、Eigen NullaryExpr にはラムダ関数の引数を持つ署名が必要であることに注意してください。