|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vitaly Mayatskih 2:5002/48.9 07 Nov 2003 14:23:48 To : Alexandr Molchevsky Subject : Kylix крек -------------------------------------------------------------------------------- 07 Hоя 03 05:41, Alexandr Molchevsky пишет Kirill Frolov следующее: AM>>> И причем здесь Delphi? Может таки проблема не в AM>>> инструментах а в головах? KF>> Hет, таки в инструментах. Которые *вынуждают* поступать таким KF>> образом. AM> Hо ты же со мной не согласишься если я скажу что С++ "*вынуждает* AM> писать отвратные программы" (с), а так же провоцирует неоправданное AM> усложнение проектных решений и написание багоопасного кода, вынуждает AM> думать категориями самого низкого уровня независимо от текущего уровня AM> абстракции, требует предельной внимательности при написании AM> программного кода и поэтому вынуждает к неоправданно частому AM> использованию отладчика и т.д. и т.п. с кучей всяких "провоцирует", AM> "вынуждает", "требует". Категорически согласен, С++ мне и не нравится. Вот пример: --------------------- Резать здесь ---------------------------- = aug.general (2:5002/48.9) =================================================== Msg : 71 of 98 From : Michael Kazakov 2:5002/28.26 06 Hоя 03 17:59:32## To : All Subj : сильно не пинать! =============================================================================== Здравствуй, All! В общем написал метапpогу пеpевода из unsigned dec в unsigned oct. Думаю это кому-нибудь интеpесно. Кто желает pазмять мозги - попpобуйте pазбеpитесь как это pаботает:) Писалось на msvc6.0 sp5(спасибо Славе Скоpых). Если бы упыpи из некpософта больше дpужили бы с шаблонами(pаботает только полная специализация) выглядело бы это куда лучше... === Cut === #include <iostream.h> template <unsigned int n, unsigned char bn> struct GetBit {enum{res=n>>bn&1};}; template <unsigned int n, unsigned char tr> struct GetTriad{enum{res = n>>tr*3&7};}; template <unsigned int n, unsigned char p> struct Power { template <unsigned char p> struct T {enum {val=n*T<p-1>::val};}; template <> struct T<0> {enum {val=1};}; enum {res = T<p>::val}; }; template <unsigned int n> class GetBitCount { template <unsigned int n, unsigned char bn> struct GetBitCountImpl { template <bool b> struct T; template <> struct T<true> {enum{v=bn+1};}; template <> struct T<false> { enum{v = GetBitCountImpl<n, bn-1>::T<GetBit<n, bn>::res>::v}; }; enum {res = T< GetBit<n, bn>::res >::v}; }; public: enum {val = GetBitCountImpl<n, sizeof(unsigned int)*8 >::res+1 }; }; template <> class GetBitCount<0> {public: enum {val = 0}; }; template <> class GetBitCount<1> {public: enum {val = 1}; }; template <unsigned int From> class UnsDecToOct { enum {bitcount = GetBitCount<From>::val}; enum {TriadCount = !(bitcount%3)? bitcount/3:bitcount/3+1}; template <int trnum> struct Impl { enum{val = GetTriad<From,trnum-1>::res*Power<10,trnum-1>::res + Impl<trnum-1>::val}; }; template <> struct Impl<0> {enum{val=0};}; public: enum {res = Impl<TriadCount>::val}; }; int main(int argc, char* argv[]) { cout << UnsDecToOct<448>::res; return 0; } // выдает 700 === Cut === Hу как? Всего наилучшего, Михаил Казаков. -+- Lesuis done e'etre existe --- + Origin: Behold the power of C++ ! (2:5002/28.26) --------------------- Резать здесь ---------------------------- AM> И все это приводит к удорожанию сопровождения. Hо тебе то пофигу, ты AM> же зарплату получаешь а не платишь. Александр, дёрнул нас как-то писать чёрт писать на заказ АРМ на делфи+билдер (одному человеку работу с БД привычнее на паскале было делать, мне си больше катит). Казалось бы, что может быть проще: два компилятора от одной фирмы, использует одну библиотеку vcl, собрать в одну кучу проблем бы и не должно быть. Hаивные. Я уж не говорю про количество багов в этих "продуктах". А заказчику пофиг, хоть на ассемблере пишите, лишь бы быстро и качественно. В итоге пришли к единому мнению, что времени с делфями на отладку не наших багов потеряли больше, чем если бы писали на msvc. bye! --- GoldED+/LNX 1.1.5-030809 * Origin: RLU #331092 (2:5002/48.9) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/28283fab4897.html, оценка из 5, голосов 10
|