
#include <map>
#include <iostream>

class CTest
{
public:
	CTest()
	{
	  std::cout << "ctor" << std::endl;
	}
	
    CTest(const CTest& other)
	{
	  std::cout << "copy ctor" << std::endl;
	}
	
	CTest(CTest&& other)
	{
	  std::cout << "move ctor" << std::endl;
	}	
	
    CTest& operator= (CTest const& other)
	{
	  std::cout << "copy assignment" << std::endl;
	  return *this;
	}
	
	CTest& operator= (CTest && other)
	{
	  std::cout << "move assignment" << std::endl;
	  return *this;
	}
	
	virtual ~CTest()
	{
	  std::cout << "dtor" << std::endl;
	}
private:
	int m_nTest;
};

int main()
{
	std::map<int,CTest> m_TestMap;
	m_TestMap[0];
	//getchar();
	//getchar();
	return 0;
}

