CyberManiac высказывание веет юношеским максимализмом. т.е. дядька Страуструп был дураком видимо, раз ввёл template metaprogramming как одну из важнейших концепций С++? языку уже свыше 20 лет, и тут появляется CyberManiac и делится со всем миром своими целомудренными измышлениями! оказывается, шаблоны то и не нужны!!! вам не нужны -- не используйте. только мне очень интересно будет узнать, как вы будете переизобретать свой велосипед каждый раз, сталкиваясь хотя бы с необходимостью иметь std::vector<T>. пишите еще сто лет на асме и радуйтесь жизни.
Имхо умение написать свою мысль так чтобы компилятор "переварил" нужным обрзом и отличает программинг от цитата по Геату
короче ушли от темы - куда делся асм - ну у меня в моем проекте его грамм 100 у керо грамм 500 у микл___ грам 500 ....
varnie - вот ето вот убожество нахера? хотя бы один пример когда без этого гуана нельзя прожить... CyberManiac нащет шаблонов поддерживаю!
NeuronViking, назови нам недостатки vector<T>. CyberManiac, а к тебе просьба показать реализацию на "правильном" Delphi простого ассоциативного контейнера по типу std::map<K, V>.
Rockphorr А что, у микл__ он обязательно с орфографической ошибкой?( А вообще, подлизываться плохо, да) Хоть и так завуалированно
NeuronViking помоему на васме неразрешается материться. это так, к слову. во-первых, это не убожество. W4FhLF верно сделал вам замечание. т.ч. ждем ответа на его вопрос от вас. во-вторых, можно прожить вообще без С++ (и без делфи, и паскаля, и ассемблера, итд). можно писать все в машинных кодах если ваша самоцель - свести ограничения в удобстве к максимуму -- пишите в машинных кодах расскажите нам, что вы подразумеваете под "нельзя прожить"?
со связными списками довольно часто приходится работать. а как без них? что касается примера. недавно писал xml парсер. вот тебе и пример: CXmlParserT<t_base_char>. а как тут без шаблонов? писать 2 одинкаовых парсера: один на utf8, другой на utf16?
W4FhLF Это, наверное, чудо, но я не из тех, кто индексирует массивы структурами о дюжине полей, а потом хэширует их до усрачки. Я для соответствующих целей обхожусь банальнейшим TStringList. Ибо всё гениальное должно быть просто.
NeuronViking Ты серьёзно будешь каждый раз реализовывать вектор для каждого нового типа? Или обойдёшься банальным массивом типа double array1[], int array[] ? А как же всякие удобства, предоставляемые векторами? /* Спрашиваю, потому что имею интерес. Опыт в C++ у меня небольшой, хотелось бы перенять немного опыта профессионала */
NeuronViking Ты серьёзно будешь каждый раз реализовывать вектор для каждого нового типа? Или обойдёшься банальным массивом типа double array1[], int array[] ? А как же всякие удобства, предоставляемые векторами? /* Спрашиваю, потому что имею интерес. Опыт в C++ у меня небольшой, хотелось бы перенять немного опыта профессионала */
W4FhLF за дельфу не скажу, не пользую. однако и на питоне, и на луа это будет просто {} те переменная, в том числе могущая сама быть и элементом и ключом другого контейнера, "a" типа ассоциативный контейнер (словарь/хэш таблица) будет задаваться как a = {} можно провести начальную инициализацию. можно наполнить элементами, в том числе и разного типа, включая и функции, и классы. можно потом элементарно перечислять/сортировать/прочие операции(в том числе и юзер дефайнутые) все это и по значению и по ключу. можно узнавать тип элемента итд varnie темплатам до метапрограмминга, как до луны пешком. да и не было это важнейшей концепцией. так, расширение препроцессора. темплаты очень долго не использовались или использовались осторожно, тк реализация их была от кривой до посредственной. только счас боле-мене. и то это надо проверить. вполне может оказаться, что "да счас такие мощные процы! да счас такая емкая и дешевая память! да дешевле им купить новый комп, чем мне подумать лишних 5 минут!" кроме того я не уверен, что это вообще изобретение страуструпа. параллельно и одновременно с С++ в беллабс появилось еще несколько лангов (из них 2 - кокса) и в них тоже есть темплаты. не исключено, что это было просто требованием политики компании
Если ассоциативный массив для тебя чудо, то могу лишь посоветовать купить книгу по алгоритмам и не позориться. Для соответствующих? Ты меня удивляешь Статический TStringList это частный случай вектора: std::vector<std::string>, а std::map контейнер совсем другого типа. Причём универсальный. Что-то твои знания ассемблера тебе не помогли в освоении простых и гениальных структур данных под названием сбалансированные деревья и хеш-таблицы, на основе которых и строятся ассоциативные контейнеры. Отсюда два вывода: 1. Ты никогда не решал задач сложнее чем "загрузить из файла список, заменить символ, записать в другой файл" 2. Ты их решал неоптимальным образом. И знание ассемблера тебя на правильный путь почему-то не наставили. Знание фундаментальных структур данных и алгоритмов отличает кодера от программиста.
_basmp_ Lua немного другого поля ягода. Всё-таки рассматривается прежде всего как скриптовый движок. А в Python'e вообще очень много завязано на ассоциативные массивы. Методы классов, например, хранятся в хеш-таблицах. В общем там это native тип. Но вопрос был не в этом, я про делфи специально упомянул. Уже неважно, я и так всё вижу Дело не в том, что как до луны пешком, а в том, что очень сложно получается и поэтому часто неоправданно. Но, например концепцию обобщённого программирования, шаблоны реализуют в полной мере и наоборот упрощают жизнь. А говорить, что это расширение препроцессора может только человек не очень хорошо (или очень нехорошо) разбирающийся в этом, без обид. Попробуй вычислить факториал числа в compile-time с помощью макросов или написать простой паттерн типа Abstract Factory. Поймёшь в чём разница. Точнее pair<string, string>.
_basmp_ Код (Text): "да счас такие мощные процы! да счас такая емкая и дешевая память! да дешевле им купить новый комп, чем мне подумать лишних 5 минут!" а при чём тут проц? задачка, например, такая: нужно сделать разбор синтаксиса (выделить ключевые слова) в строке. строка может быть utf-8, может utf-16, а может и utf-32. будешь всё писать на дефайнах? а если нужно юзать одновременно несколько кодировок? или будешь в каждой функции задавать тип кодировки? какой здесь ещё выход кроме шаблонов?