私は移動不可能でコピー不可能なタイプを持っています:
struct A
{
A(std::string p1, int p2){}
A(A const &) = delete;
A(A&&) = delete;
A& operator=(A const &) = delete;
A& operator=(A&) = delete;
};
この方法でオプションのブーストを構築できます。
boost::optional<A> op(boost::in_place("abc", 5));
boost::optional<A>
クラスメンバーである初期化も必要です。これが私の解決策です:
class B
{
public:
B(const boost::optional<A>& op): op_(op) {}
private:
const boost::optional<A>& op_;
};
B b(boost::optional<A>(boost::in_place("abc", 5)));
boost::optional<A>
クラスメンバーだけを持って、どうにかして初期化することは可能ですか?
編集(明確化)クラスデータメンバーが
欲しいのですがboost::optional<A> op_
、初期化する方法がわかりません。