запрещение создания экземпляра в качестве временного объекта (C ++)

Мне нравится использовать классы часовых в c ++, но у меня, кажется, есть душевное расстройство, которое приводит к неоднократному написанию ошибок, подобных следующим:

{
  MySentryClass(arg);
  // ... other code
}

Само собой разумеется, это не удается, потому что часовой умирает сразу после создания, а не в конце области, как предполагалось. Есть ли способ предотвратить создание экземпляра MySentryClass как временного, чтобы приведенный выше код либо не компилировался, либо, по крайней мере, прерывался с сообщением об ошибке во время выполнения?

10
задан Dan 4 June 2015 в 01:55
поделиться