【发布时间】:2011-06-03 02:29:56
【问题描述】:
我喜欢在 c++ 中使用哨兵类,但我似乎有一种精神上的痛苦,导致反复编写如下错误:
{
MySentryClass(arg);
// ... other code
}
不用说,这会失败,因为哨兵在创建后立即死亡,而不是按预期在作用域结束时死亡。有什么方法可以防止 MySentryClass 被实例化为临时的,从而使上述代码要么无法编译,要么至少在运行时中止并显示错误消息?
【问题讨论】:
-
我不认为回答者到目前为止理解 - 你知道如何正确地做到这一点,但发现自己经常犯这个错误,你想知道是否有自动检测它的方法。对吗?
-
@Mark, @DeadMG:是的,没错。
标签: c++ temporary temporary-objects