LINUX.ORG.RU

Никак, это фича. Просто при задании конкретного типа для темплейта он компилируется заново.

kpanic ★★
()
Ответ на: комментарий от Begemoth

>Это не фича, это генетический баг С++.

но по сравнению с Haskell'ем (ghc), Ц++ по времени компилится оч. даже ничего :)

Pi ★★★★★
()
Ответ на: комментарий от DonkeyHot

Ты знаешь, Pugs (рабочий вариант perl6 на haskell) полгода назад компилировался у меня на P4-3000/512Mb часов 6. Хотя хаскелльных исходников там было всего-то метра 2..4, кажется. И сжирал _всю_ память. Иногда даже падал по not enough memory.

Хотя, с другой стороны, если написать средних размеров парсер на boost::spirit, gcc, наверное, тоже будет сильно думать.

anonymous
()
Ответ на: комментарий от Begemoth

можно еще regexp для boost заюзать, тоже время компиляции впечатляет.

fghj ★★★★★
()
Ответ на: комментарий от anonymous

>P4-3000/512Mb часов 6 ... Хотя, с другой стороны, если написать средних размеров парсер на boost::spirit

Примерно это и имелось ввиду. Товарищ, писавший таким образом конвертор протоколов, вынужден был заказать 2хпроцессорную машинку:-). Тянет ли эта программа на звание "средний" судить не берусь.

DonkeyHot ★★★★★
()
Ответ на: комментарий от anonymous

тока докомпилил это чудо "на посмотреть"... где-то 4 часа потратил. Турион 1.6 с рейтингом 3.0. Осталось выяснить, зачем этот пугс вообще нужен :)

Pi ★★★★★
()
Ответ на: комментарий от Begemoth

нет, не пробовал. но если взять среднестатистическую прогу на ц++ и хаскеле, то что-то мне подсказывает...

Pi ★★★★★
()
Ответ на: комментарий от Pi

> нет, не пробовал. но если взять среднестатистическую прогу на ц++ и хаскеле, то что-то мне подсказывает...

В среднестатистической проге на C++ шаблоны используются довольно ограниченно (STL и самодельные дописки того, чего там не хватает). Исключения - boost::lambda и boost::regexp. Остальное - от лукавого.

Хаскелль же долго компилится _всегда_.

anonymous
()
Ответ на: комментарий от anonymous

>Хаскелль же долго компилится _всегда_.

Кроме случая, если уже скомпилено. А темплейты уже научились один раз компилить - или как раньше, для каждого #include-нувшего файла по новой?

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Таки нет, по крайней мере, GCC export template не умеет. Digital Mars умеет, вроде, или еще кто-то из коммерческих...

anonymous
()
Ответ на: комментарий от anonymous

> В среднестатистической проге на C++ шаблоны используются довольно ограниченно

Это Вы сами придумали? Видимо мало Вы программ видели/писали на С++.
Ваше утверждение верно по отношению к программам прошлого века, сейчас
все по другому. 

aton
()
Ответ на: комментарий от aton

C++ существует достаточно давно. А большие программы, определенно, пишутся долго. Отсюда, большие программы == legacy code. И шаблонов там мало.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.