1176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesnamespace std { 2176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines template<typename> struct mersenne_twister_engine { 3176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines friend bool operator==(const mersenne_twister_engine &, 4176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines const mersenne_twister_engine &) { 5176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines return false; 6176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines } 7176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines }; 8176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines struct random_device { 9176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines mersenne_twister_engine<int> mt; // require complete type 10176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines }; 11176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines} 12176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 13