Сохраняет объекты класса с перегруженным оператором & ”В контейнерах STL, допустимых в C ++?

Согласно Стандарту C ++ 03 (23.1 / 3) только копируемые объекты класса могут храниться в контейнерах STL. Копируемый объект описан в 20.1.3 и требует, чтобы "&" давало адрес объекта.

Теперь предположим, что у меня есть этот класс:

class Class {
public:
   Class* operator&()
   {
       //do some logging
       return this;
   }
   const Class* operator&() const
   {
       //do some logging
       return this;
   }
   //whatever else - assume it doesn't violate requierements
};

Можно ли законно хранить объекты этого класса в контейнерах STL?

6
задан sharptooth 28 December 2011 в 10:26
поделиться