class Foo { public: Foo( int bar) = 0; Foo( int bar = 777 ); Foo( const Foo & ) = delete; Foo( int boo ) = default; Foo( unsigned int ) = default; Foo( unsigned int boo=999 ); Foo &operator= ( const Foo & ) = delete; ~Foo(); };