#include <iostream>
using namespace std;
namespace noncopyable_ // protection from unintended ADL
{
////////////////////////////////////////////////////////////////////////////
// class noncopyable
////////////////////////////////////////////////////////////////////////////
class noncopyable
{
protected :
////////////////////////////////////////////////////////////////////////
// Construction/Destruction
noncopyable( ) { }
~noncopyable( ) { }
private :
// The following members are private
noncopyable( const noncopyable& that) ;
const noncopyable& operator= ( const noncopyable& that) ;
} ;
} // namespace noncopyable_
typedef noncopyable_:: noncopyable noncopyable;
class Test : private noncopyable
{
public :
Test( ) : m_val( ) { }
//Test(const Test& other) : m_val(other.m_val) {}
~Test( ) { }
private :
int m_val;
} ;
int main( )
{
Test t1;
Test t2( t1) ;
// your code goes here
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbmFtZXNwYWNlIG5vbmNvcHlhYmxlXyAgLy8gcHJvdGVjdGlvbiBmcm9tIHVuaW50ZW5kZWQgQURMCnsKCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvLyBjbGFzcyBub25jb3B5YWJsZQogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKICAgIGNsYXNzIG5vbmNvcHlhYmxlCiAgICB7CiAgICBwcm90ZWN0ZWQ6CgogICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgICAgIC8vIENvbnN0cnVjdGlvbi9EZXN0cnVjdGlvbgoKICAgICAgICBub25jb3B5YWJsZSgpIHt9CiAgICAgICAgfm5vbmNvcHlhYmxlKCkge30KCiAgICBwcml2YXRlOiAgCiAgICAgICAgICAKICAgICAgICAvLyBUaGUgZm9sbG93aW5nIG1lbWJlcnMgYXJlIHByaXZhdGUKCiAgICAgICAgbm9uY29weWFibGUoY29uc3Qgbm9uY29weWFibGUmIHRoYXQpOwogICAgICAgIGNvbnN0IG5vbmNvcHlhYmxlJiBvcGVyYXRvcj0oY29uc3Qgbm9uY29weWFibGUmIHRoYXQpOwogICAgfTsKCn0gLy8gbmFtZXNwYWNlIG5vbmNvcHlhYmxlXwoKdHlwZWRlZiBub25jb3B5YWJsZV86Om5vbmNvcHlhYmxlIG5vbmNvcHlhYmxlOwoKY2xhc3MgVGVzdCA6IHByaXZhdGUgbm9uY29weWFibGUKewpwdWJsaWM6CiAgICBUZXN0KCkgOiBtX3ZhbCgpIHt9CiAgICAvL1Rlc3QoY29uc3QgVGVzdCYgb3RoZXIpIDogbV92YWwob3RoZXIubV92YWwpIHt9CiAgICB+VGVzdCgpIHt9Cgpwcml2YXRlOgogICAgaW50IG1fdmFsOwp9OwoKaW50IG1haW4oKQp7CglUZXN0IHQxOwogICAgVGVzdCB0Mih0MSk7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==