Вот код ideone: http://ideone.com/Qp8EqgПерегрузки оператор присваивания для типа удержания
Мой вопрос, можно ли заставить преобразование на основе только Lvalue? Например,
[Seconds] s = 2_h + 60_s;
cout <<s.getSeconds()<<endl;
Очевидно, я должен был бы написать что-то вроде 2_h.toSeconds(), но это было бы слишком многословным и не достигает идеи.
Вы имеете в виду 'Seconds s = 2_h + 60_s;'? Или даже более вероятно: 'Seconds s = 2_h;'? –
'2_h.toSeconds()' недействителен. Вы можете написать '2_h .toSeconds()', чтобы сделать его действительным. Кроме того, do '(2_h) .toSeconds()' –