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