Inspired by этот вопрос . Предположим, у меня есть class Lock
с конструктором по умолчанию, и в каком-то коде я пишу следующее утверждение:
Lock();
это приведет к созданию временного объекта класс Lock
и сразу же его уничтожить. Конечно, создание могло иметь некоторые побочные эффекты, и что изменило бы поведение программы, однако это выглядит довольно странно.
Итак, мое первое предположение состоит в том, что такие утверждения, хотя и полностью действительны с языковая перспектива, скорее всего, будет содержать логическую ошибку.
Существуют ли допустимые варианты использования вышеуказанного утверждения? Есть ли хорошо-известные и популярные идиомы, включающие такие утверждения? Зачем мне нужны такие операторы в правильной программе?