To modify all operator = inside Instance
Операторы присваивания для Instance реализованы таким образом, что возвращают ссылку на *this. Тем не менее реализация оператора присваивания для внутреннего пользовательского типа может быть произвольной. Таким образом, для соблюдения принципа прозрачности обертки Instance над внутренним типом необходимо реализовывать оператор присвоения подобно другим бинарным операторам.
А именно:
- если результат оператора возвращает фундаментальный тип, то следует возвращать фундаментальный тип.
- если результат оператора возвращает не фундаментальный тип, то следует возвращать обертку DefaultTool над возвращаемым типом.
- если результат оператора возвращает ссылку, то следует возвращать обертку над ссылкой с гарантией применения особенностей к операндам.
Edited by ssoft