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(); };