при тестировании с другой версией г ++, следующая проблема пришла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 делает правильную вещь, вероятно, хорошая идея не дублировать имена, потому что вы будете путать ад с теми, кто читает код иначе. –
@Bil это была часть рефакторинга. Я убираю какую-то мозговую штурм – Anycorn
GCC4.5 исправлен и делает это как 4.1, по крайней мере, в моем тесте. –