0
的成員考慮一下:指針類型名
template < typename VectorType >
void ff()
{
// This passes.
typedef typename VectorType::value_type VV;
typedef int VV::* MM;
// This FAILS!??
typedef int typename VectorType::value_type::* MMM;
}
爲什麼第二次失敗,是什麼讓一個typedef語句所需的typedef正確的方法是什麼?
我的編譯器是GCC-4.7.2。
它是否像'typedef int VectorType :: value_type :: * MMM'一樣工作? –
@KerrekSB我相信你應該把它變成一個答案,'typename'在這裏顯然是多餘的(在'::'右邊沒有標識符)。 – Angew
@Angew:這不僅僅是多餘的*。在那裏使用'typename'是不正確的。 – Nawaz