0

エラー C2783 に直面しています。同様の構造のテストケースでエラーを再現します。
テストケースは次のとおりです。

#include <iostream>

namespace ns1 {
    template <class T> class class_1 {};
}

namespace ns2 {
    using namespace ns1;
    template <typename T> inline ns1::class_1<T> myfunc();

    template<typename T>
    inline ns1::class_1<T> myfunc() {
            int a,b;
            std::cin>>a;
            std::cin>>b;
            if(a<b) return true;
            else return false;
    }

}


namespace ns3 {
struct myStruct {
    ns1::class_1<double> var1;
    ns1::class_1<double> var2;
    myStruct ( const ns1::class_1<double>& cl0= ns2::myfunc<double>(),
                    const ns1::class_1<double>& cl1= ns2::myfunc<double>()): var1(cl0), var2(cl1) {};
    };
}

エラー:
エラー C2783: 'ns1::class_1 ns2::myfunc(void)': 'T' のテンプレート引数を推測できませんでした

また、27行目(cl0)でエラーが発生し、28行目(cl1の場合)でエラーが発生しないのはなぜですか?一部の関数でこれを使用しようとすると、構造体の引数で使用するとエラーが発生するだけでうまく機能します。

4

1 に答える 1