而具有不同版本的克++測試,下面的問題想出C++模板參數/類歧義
template<class bra>
struct Transform<bra, void> : kernel::Eri::Transform::bra {
static const size_t ni = bra::A::size;
bra::A
被解釋爲kernel::Eri::Transform::bra::A
,而不是由克++ 4.1.2模板參數。另一方面,g ++ 4.3正確。
根據標準什麼應該是正確的行爲?
同時,我稍微重構使問題消失。
即使4.3正在做正確的事情,但不要重複名稱可能是一個好主意,因爲您會混淆讀取代碼的地獄。 – 2010-05-04 17:12:39
@那是重構的一部分。我正在清理一些頭腦風暴活動 – Anycorn 2010-05-04 17:16:06
GCC4.5是固定的,並且像4.1一樣,至少在我的測試中。 – 2010-05-04 17:25:21