void ParticleGeneratorController::generate() {
for( unsigned i = 0; i < generators.size(); i++) {
ParticleGenerator generator = *generators[i];
generator.update();
}
}
コピー コンストラクタか何かを呼び出しているようですが、定義していません。明示的なデフォルト コンストラクターしかありません。
https://github.com/ChrisLundquist/Waveform/blob/master/src/models/particle_generator.h
上記のコードを考えると、テストは失敗します。https://github.com/ChrisLundquist/Waveform/blob/master/spec/controllers/particle_generator_controller_spec.cpp#L21
と書くと
void ParticleGeneratorController::generate() {
for( unsigned i = 0; i < generators.size(); i++) {
generators[i]->update();
}
}
テストに合格します。
最初の実装でコピー コンストラクターが呼び出されるのはなぜですか? コンパイラによってどのように生成されますか?