1
我有這樣一個全局函數:聲明一個模板函數作爲朋友
namespace X
{
namespace Y
{
template <R, ...T>
R foo(T&&... args)
{
R r(args...);
return r;
}
}
}
然後在另一個類A
,我想聲明這個功能foo
爲A
朋友。所以我做:
class A
{
template <R, ...T>
friend R X::Y::foo(T&&... args);
A(int x, int y){}
};
現在,當我打電話X::Y::foo<A>(4, 5)
它失敗,錯誤來編譯FOO不能訪問的A
的私有構造。我無法理解錯誤,我該如何正確地聲明foo
作爲A
的朋友?
在此先感謝。
這是真碼嗎? – 2013-05-03 14:41:55
嘗試'朋友R X :: Y :: foo(T &&...);'。 –
2013-05-03 14:44:20
這是Visual Studio 2012 CTP中的一個錯誤,將它報告給Microsoft,他們已經在內部修復了它。 – Aarkan 2013-05-30 16:53:46