同じ基本クラスを継承したクラスのオブジェクトがいくつかあり、それらをまとめて扱いたい場合と、専門特化して扱いたい場合、両方が同時に必要なことがたまにあります。 そんなときに、オブジェクトの参照を保持するコンテナが必要になるのですが、どうやらboost::reference_wrapperのコンテナを使用すればいいようです。 こんな感じになりました。 #include <iostream> #include <string> #include <vector> #include <boost/ref.hpp> #include <boost/assign/list_of.hpp> #include <boost/foreach.hpp> struct Base { // 共通で使用する関数 void print() const { std::cout << "print" << std::e