>165 上のレスで挙げられた規格の項目 12.8/15 にありますけれど "even if the copy constructor and/or destructor for the object have side effects." でも [N]RVO は許されていて >例えばコンストラクタで画面に文字を出力しているとき では RVO が機能しているかどうかで画面出力が変化します. 逆に,画面出力の回数で RVO が効いているかどうかを確認することができます.
その判別が可能であれば、その後に各クラスのインタフェースでメソッドを呼びたいのです。 今のところ、苦肉の策として class Hoge : public A , B;というクラスの場合、 void Func(A a,B b) のように含まれる型分の引数を増やした関数を作り、 全てに同じインスタンスオブジェクトを指定してもらうようにしています。
思っていたソースとだいぶ違っていました。。 #include <vector> using namespace std; // default template<typename T> int func(T data); // int template<> int func<int*>(int* data); // vector template<typename A> int func<vector<A>*>(vector<A>* data);
// int int func<int*>(int* data){ return 0; } // vector template<typename A> int func(vector<A>* data){ return 0; }
int main(){ vector<int> ivec; func(&ivec); vector<float> fvec; func(&fvec); int i; func(&i); return 0; }