0
私は何か非常に単純なものを見逃しているようです。以下は動作しません:スタンダードを返す方法::オプション<myclass>を関数からですか?
#include <optional>
class Alpha {
Alpha() { }
Alpha(const Alpha& that) { }
Alpha(Alpha&& that) { }
~Alpha() { }
static std::optional<Alpha> go() {
return Alpha();
}
};
を私が得るエラーは以下のとおりです。
no suitable user-defined conversion from "Alpha" to "std::optional<Alpha>" exists
T in optional<T> must satisfy the requirements of Destructible
'return': cannot convert from 'Alpha' to 'std::optional<Alpha>'
は、私が何をしないのです、あなたは理由を説明してくださいできますか?
Argh!ちょうど私の心をスキップしました。ありがとう。 – Roxy
@Roxy構造体を使用し続ける多くの理由の1つ) –
@GuillaumeRacicot私が知る限り、 'struct'と' class'はデフォルトのアクセス修飾子を除いて同じです。私はあなたが 'struct'を好むべき他の理由が何か不思議です。 –