I have a class:
class SymbolIndexer {
protected:
SymbolIndexer ( ) { }
public:
static inline SymbolIndexer & GetUniqueInstance ( )
{
static SymbolIndexer uniqueinstance_ ;
return uniqueinstance_ ;
}
};
How should I modify it to disable code like:
SymbolIndexer symbol_indexer_ = SymbolIndexer::GetUniqueInstance ( );
and only allow code like:
SymbolIndexer & ref_symbol_indexer_ = SymbolIndexer::GetUniqueInstance ( );
Best Answer
You can make the copy constructor private and provide no implementation:
Or in C++11, explicitly forbid it: