Если раскомментить (1) — получаем
[BCC32 Error] E2293 ) expected
В то же время, если раскомментить и (2) — замечательно компилится
comeau компилит все варианты.
Это таки баг или мое непонимание ?
Здравствуйте, Аноним, Вы писали:
А>Это таки баг или мое непонимание ?
Конечно, баг. Только было бы интересно понять — что же именно срубает компилятора?
— анонимный энум? — попробуй enum BoolType { Bool = B };
— значение из параметра? — enum { Bool = 123 };
— расширение bool до числа? — enum { Bool = (int)B, Shmool = (B+1) };
даже не знаю, что ещё предложить.
— попробуй переставить местами enum { Bool=B }; typedef T type;
— попробуй написать typedef Bug<int> bug; typedef bug::type bugtype;
Сенкс!
Так, конечно, работает.
В 2010 студии (embarcadero) глянул — то-же самое.
С ней идет как обычно dinkumware stl, в которой таких граблей есть немного
Это-ж, блин, сколько лишних typedef'ов на каждый чих писать-то придется...
Пожалуй, придется воздержаться от bcc, хорошо хоть не купили
Здравствуйте, rm822, Вы писали:
R>лучше сразу бросьте это дело, борландовый компайлер это редкостное Г, а с шаблонами у него вообще полный ппц
Это точно
Просто решил поглядеть на борланд в свете с++0x, мож исправились. Получилось вот что:
Падения компилера с internal compiler error на ровном месте — обычное дело.
Фичи среды типа автокомплита работают, похоже, в потоке gui, что приводит к фризам секунд на 20(!) в проекте из 10 файлов.
Из с++0x нету ни лямбд, ни auto
boost 1.39 вроде как в поставке идет, но это немного "не тот" boost , а допиленный и порезаный. Очень увлекательно глядеть доку по бусту, потом глядеть хидеры и думать, а как, собственно?
C вышеприведенным багом либо на любой тип заводить typedef, либо курить сорцы на предмет енумов.
В общем, фтопку эту радость. Как было рисовалкой гуи 10 лет назад, так и осталось.