Здравствуйте, prezident.mira, Вы писали:
NI>> тип выражения — decltype((object)).
PM>Но ведь (object) это lvalue типа TOnlyMovable, а для lvalue типа T, тип, обозначаемый decltype, является T&. В данном случае — TOnlyMovable&.
Поправил.
PM>Но, на мой взгляд, проще в тех правилах сразу говорить, что типом выражения с идентификатором или вызовом функции будет тип идентификатора или тип возвращаемого значения, но избавленный от "ссылочности".
Стандартизаторы C++ любят хитрые манёвры, когда смысл сказанного в одной части стандарта внезапно преображается во что-то иное после прочтения другой.