私は次のエラーメッセージを取得していますのがない実行可能なコンストラクタコピー変数:C++タイプ
main.cppに:第二コンストラクタ、communal(const T& instance)
に
「共同」タイプのない実行可能なコンストラクタコピー変数、次のメッセージが与えられます。
data.h:生きていない候補コンストラクタ:第1引数は「のconst int型&」から「共同」から知られていない変換
を変換が後ろ向きになっているようです。コンバージョンへの変換をconst int &から行ってほしい。ここで暗黙の変換を行う方法はありますか?助けてくれてありがとう。
main.cppに:
communal<int> test_communal1 = 123; // Implicit initialization triggers error
がdata.cpp:
template<typename T>
struct communal : general_type::communal<T>
{
using super = general_type::communal<T>;
communal() : super(nullptr) {}
communal(const T& instance) : super(new T(instance)) {}
communal(const T* instance) : super(new T(instance)) {}
communal(communal<T>& instance) : super(instance) {}
communal(communal<T>* instance) : super(instance) {}
~communal()
{
this->counter->deallocate([this]()
{
delete this->counter;
delete this->instance;
});
}
};
:http://coliru.stacked-crooked.com/a/70f71efbc2b2666c は、「エラー:タイプの右辺値」に 『共同&』タイプの非const左辺値参照をバインドすることはできません共同体 '" –
ありがとうございます@MooingDuck、私はエラーメッセージが同じかどうかを確認する継承なしでこれを試してみるつもりです。私はいくつかの奇妙な効果を持っている可能性があります3層の継承を使用します。何か理由がある場合は、私はそれを高く評価します。 –
[最小限で完全で検証可能なサンプルを作成する方法] –