【发布时间】:2011-08-24 02:42:07
【问题描述】:
假设我有一个类 C 和一个创建 C 实例的函数 make_c(x)。
C 通过引用存储x。
当x 是一个未命名的临时文件(这当然会在行尾破坏,留下一个悬空引用)但接受命名临时文件和其他值时,我如何编写make_c(x) 以给出编译错误?
【问题讨论】:
-
@Potatoswatter:我的意思是
const T& x = f(),x是一个命名的临时文件(它不会在行尾被销毁)。 -
@Clinton:这不会在行尾破坏。当
x超出范围时,它会被销毁。 -
@Clinton 那么这不是暂时的。
-
@Nawaz:这不是我说的吗?
-
@Clinton:您所做的任何事情(无论如何都不是合法的 C++)要求您“识别未命名的临时人员”。事实上,C++0x 语言让你几乎不可能这样做,而且他们费尽心思阻止它可能有一个很好的理由。