#std::for_each関数とmem_funを使ってfor文を省略#
##std::for_each関数とは
【範囲の全ての要素に、指定された関数を適用する】と調べると書いてあります
おもに自分の使うタイミングはイテレータですかね
before
for (auto it = m_objects.begin(); it != m_objects.end(); ) {
こうやってイテレータで最初と最後をfor文で動かすのではなく
after
/*m_objectsの全ての要素にObje()関数を適用する*/
std::for_each(m_objects.begin(), m_objects.end(),Obje());
長さなどは変わらないことも多いけど入れ子が少なくなるのでいいと思う
##std::mem_fun関数とは
クラスのメンバ関数を呼び出すためのテンプレート関数です
ざっくり言いますと、間接的に、メンバ関数を呼び出すことができる
(自分も深くは知らない)
##本題
つまりこの二つを組み合わせれば
qiita.rb
for (auto&& obj : m_objects) {obj->Draw3D();}
が
qiita.rb
std::for_each(m_objects.begin(), m_objects.end(),std::mem_fun(&GameObject::Draw3D));
というようになります
少しでもかっこよく見せたいならいいと思います。