А, понял.
Актуально, если платят за размер кода, или например за количество непробельных символов
В любом случае нечитаемо при более-менее сложном коде
Здравствуйте, Banned by IT, Вы писали:
XC>>При наличии методов-расширений все получится вообще элементарно. string ToStr(this int x) и т.д.
BBI>А чем не нравится конструктор string (int x)?
Мне не нравится например тем, что нужного конструктора может не быть.
AVL>>>массовым погромистам гораздо проще развешивать лапшу прикрываясь всякими С# 100500 / мета- / фукнциональное программирование / лямбды / монады / linq / макросы / прочая фигня. а да, виртуальные машины забыл, тоже модная тема. M>>Выделенное — не лапша, а очень удобные инструменты. Которые — ВНЕЗАПНО — тоже появляются в С++ AVL>странно было бы, если бы человек, покусанный яблочным маркетингом, не утверждал, что вся это модная лапша не является удобной AVL>расскажи что там внезапно появилось в плюсах (можно без лямбд, хотя кому они нужны там...), что тебя на капс пробило.
Появились лямбы, а с ними (правда, уже давно в виде обобщенного программирования) — функциональное программирование.
Здравствуйте, Cadet, Вы писали:
BBI>>А чем не нравится конструктор string (int x)?
C>Мне не нравится например тем, что нужного конструктора может не быть.
А чем это отличается от того, что функции ToStr для типа int (чтоб вызывать как 10.ToStr ()) может не быть?
Если писать самому так почему не написать string ToStr (int x)?
Какой смысл вот в этом изврате с 10.ToStr () ?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Ф>>строки должны быть единственными BBI>Вот есть у тебя единственный формат строк. И входные/выходные данные в UTF8 и UTF32. Как с ними будешь работать? Приводить все к UTF16 а потом назад?
Да. Если все упирается только в конвертацию, можно обойтись написанием одной функции для конвертации. А не изобретать для этого очередной, ни скем не совместимый велосипед.
ЗЫ.
Помнится, писал я на Qt программку для работы с симантековской факсовой программой. Qt — это QString, факсовая программа — COM-интерфейсы с, соотсветсвенно, BSTR, или как он там называется. В общем, QString <-> BSTR без потери данных выполняется только при помощи какой-то матери (ЕМНИП, через другой промежуточный тип, возможно, через тот же std::string, а то и через что похуже).
Про программную отсылку почты в условиях русской фирмы, работающей на турецкой земле, я тоже умолчу. Путь GUI -> почта без потери данных можно пройти только джедаям.
S>gate ~ # g++ example.cpp -o example
S>gate ~ # ./example
S>Hi, 123!
S>Hi, 123! This is other namespace :))
S>
S>Другое дело что на ненавистных местными дефайнах.... Ну уж это я считаю что они ими пользоваться не умеют...
Когда ты прекратишь слушать голоса в своей голове? То, что ты «нарисовал» — это страшный страх и ужасный ужас со всех сторон — от читаемости до поддержки в будущем
Здравствуйте, Mamut, Вы писали:
M>Когда ты прекратишь слушать голоса в своей голове? То, что ты «нарисовал» — это страшный страх и ужасный ужас со всех сторон — от читаемости до поддержки в будущем
Я в тебе не сомневался, ты просто обязан был первым ответить на такое, особенно моё
Ничего тут страшного нет ни в читаемости, ни в поддержке, ибо кода в реализации кот наплакал
Здравствуйте, Banned by IT, Вы писали:
BBI>Здравствуйте, Cadet, Вы писали:
BBI>>>А чем не нравится конструктор string (int x)?
C>>Мне не нравится например тем, что нужного конструктора может не быть. BBI>А чем это отличается от того, что функции ToStr для типа int (чтоб вызывать как 10.ToStr ()) может не быть? BBI>Если писать самому так почему не написать string ToStr (int x)? BBI>Какой смысл вот в этом изврате с 10.ToStr () ?
Смысл именно в том, что нет нужного метода, но ты можешь написать внешнюю функцию, которая при вызове будет выглядешь как метод. К примеру:
var fileContent = File.Read()...
fileContent.RemoveDuplicates().Compress().ToBase64().SendToServer();
ИМХО выглядит сильно читабельнее чем
var fileContent = File.Read()...
SendToServer(ToBase64(Compress(RemoveDuplicates(fileContent))));
Здравствуйте, Sheridan, Вы писали:
S>Ничего тут страшного нет ни в читаемости, ни в поддержке, ибо кода в реализации кот наплакал
Да в данном месте наплакал конечно. А в реальном проекте, с исходниками мегабайт ну скажем 5, один так наплакал в одном месте, другой в другом, третий в третьем. А потом ты рыдаешь, когда продираешься через это в поисках ошибки.
В С++ очень много чего понапихано. В руках профессионала-одиночки или группы профессионалов это всё зашибись. Но в большом коллективе надо вводить жёсткие правила, по тому что как и где писать и использовать, чего конечно никто не делает, поэтому получаем кучу непонятного, неподдерживаемого кода на выходе. В Джаве, например, всегда можно как-то худо бедно жить даже с самым дерьмовым кодом, потому как код там везде однородный, но не в С++.
Вобщем плох он для быдлокодеров.
На мой взгляд С++ это не готовый язык, это такой набор "Сделай сам", отсюда все и жалобы — мол я хотел уже что-то готовое. Извините, на что вы лично способны, то в результате и получите. Однако людям, то, на самом деле нужен язык вроде Делфи, а не С++, а покупатель всегда прав. С++ слишком сложен — заявляют они. С++ не делает выбор за человека, он не направляет его в единственно правильное и возможное русло и это фактически всё. Если вы уже умеете программировать, то у вас не должно возникнуть проблем с С++. Ну будете ныть, что вам не хватает фишки из языка Х, а в целом будете писать такой же код как вы писали раньше. Если вы программировать ещё не умеете, то С++ вас оному не научит, никто вас не освобождает от необходимости знать зачем, что и как в этом языке устроено, начиная фактически с азов, прежде чем тупо копи-пастить какой-нибудь код из туториала.
Здравствуйте, Artifact, Вы писали:
A>Однако людям, то, на самом деле нужен язык вроде Делфи, а не С++, а покупатель всегда прав. С++ слишком сложен — заявляют они. С++ не делает выбор за человека, он не направляет его в единственно правильное и возможное русло и это фактически всё.
Не хочешь ли ты сказать, что та же дельфя делает какой-то выбор, куда-то направляет?
Здравствуйте, Философ, Вы писали:
Ф>>>строки должны быть единственными Ф>>>а тут только в std уже 2 варианта
O>>32-битных системах весит "аж" 24 байта.
Ф>ржал аки конь
Ага, еще больше ржать будешь когда будешь упираться в ограничения 32bit и надо будет считать каждый байтик.
Здравствуйте, Sheridan, Вы писали:
S>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++? Указатели? Да фигня это, на пару граблей наступить и рефлекс появится. Зато более шустрый софт получается. S>Так все же?
это реакция людей ко всему непонятному и что не дано понять...
Здравствуйте, Cadet, Вы писали:
C>Смысл именно в том, что нет нужного метода, но ты можешь написать внешнюю функцию, которая при вызове будет выглядешь как метод. К примеру: C>
Да ладно? У строки есть метод sendtoserver? Пример крайне неудачен.
Впрочем мысль понятна. Все зависит от мощности используемой библиотеки. Кутэ приближается к описанному тобой.
Здравствуйте, netch80, Вы писали:
S>>Кстати, очень хочется увидеть реализацию пространства имен класса на эрланге. N>На параметризованные модули уже смотрел?
Здравствуйте, x-code, Вы писали:
XC>Не. У меня есть объект конкретного класса, у которого внутри сотни методов, полученных ЛЮБЫМ путем, может быть — длинная цепочка наследования, может быть все сразу объявлены, неважно. Я в IDE пишу "obj." и мне автокомплит выдает ПРОСТЫНЮ из методов, отсортированных тупо в алфавитном порядке. А я хочу, чтобы мне выдавалось около 10 внутренних неймспейсов, между которыми методы разгруппированы ПО СМЫСЛУ. Кстати, кроме иерархических неймспейсов можно ввести и "теги", правда это я еще не обдумывал.
О! Мне тоже всегда хотелось чего-то подобного. Действительно неудобно, когда автокомплит выдаёт сразу все члены класса.
Здравствуйте, Sheridan, Вы писали:
S>Я вот читаю-читаю, но так и не могу понять — откуда у людей такая нелюбовь к ц++? Указатели? Да фигня это, на пару граблей наступить и рефлекс появится. Зато более шустрый софт получается. S>Так все же?
Да просто же — никогда нельзя быть уверенным, что вызывая какую любую функцию, ты не получишь сайд эффектов, которые могут изменить вообще все что либо в работающей системе.
Это же лепота — присвоил переменной значение — и уверен что ее никто уже не поменяет, вызвал функцию — и уверен, что она ни на что не повлияет.
А ц++, что — каждый чих потенциально может изменить логику программы в любом месте.
Неее, такое нам не нужно. Нам логических ошибок хватает....
Здравствуйте, Sheridan, Вы писали:
S>Да ладно? У строки есть метод sendtoserver? Пример крайне неудачен.
Нет, есть extension-метод SendToServer.
S>Впрочем мысль понятна. Все зависит от мощности используемой библиотеки. Кутэ приближается к описанному тобой.
QT ограничен языком.