>>730
なるほどサンキュー
でもoptionは省きたいところ
moveしたあとは使わない前提でこれはUBになる?

class A {
 std::reference_wrapper<const std::string> m_s;
public:
 A(const std::string& s) : m_s(s) {}
 A(A&& rhs) : m_s(std::exchange(rhs.m_s, *(const std::string*)nullptr)) { }
};