3
我有这样的示例代码:根据标准,这是有效的C++代码吗?
struct A
{
bool test() const
{
return false;
}
};
template <typename T = A>
class Test
{
public:
Test(const T& t = T()) : t_(t){}
void f()
{
if(t_.test())
{
//Do something
}
}
private:
const T& t_;
};
int main()
{
Test<> a;
a.f();
}
基本上我担心的Test
我在哪里存储const引用到一个临时变量和methof f
使用它的构造。临时对象引用是否在f
内保持有效?
我认为 - 没有。编译器无法跟踪(通常情况下)引用的去向以及它是否持久存储。但最简单的是写一个示例应用程序,看看会发生什么。 – valdo 2010-12-09 09:21:40
它适用于VS2008,但我不太相信它的权利。 – Naveen 2010-12-09 09:22:19