struct S { S() = default; S(S const& rhs) = delete; S& operator=(S const& rhs) = delete; S(int x) : x_(x) {} int x_; }; int main() { S s0; S s1 = { 1 }; // S s2 = 2; copy deleted // s0 = s1; = deleted }