- 1
- 2
- 3
- 4
void get_me(const char **retval)
{
*retval = "Hello, Word!";
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+125
void get_me(const char **retval)
{
*retval = "Hello, Word!";
}
Надейся на компилятор...
Ну и кто додумался это плюсануть? Еще один не знающий сишку? Идите почитайте уже какую-нибудь книгу по си, и тогда поймете почему так, и куда надо писать конст, чтобы было не так:
так уже ведь
Единственная прикольная фишка - это printf_dec_format. Но всё равно обосрались со строками и cv-типами.
Но если для cv можно расширить, то строки в любом случае приводить к (char*), если я правильно понял.
Короче говоря, получается некая специлизация для выбранных типов. А тела однотипных функций для разных типов (какая замысловатая фраза получилась) всё равно придется дуплить.
учитывая, что на дворе 2013 год
больше всего в многострочных макросах (а тут на пару десяток строк постоянно будет выходить) будут вымораживать слеши на концах строк
не говоря уж о том, что подсветка синтаксиса внутри будет, мягко говоря, странной
по буддийскому календарю и вовсе 2556
>подсветка синтаксиса внутри будет, мягко говоря, странной
это уже проблемы тех, кто фонарик держит
>полное убожество
полностью согласен
После знакомства с плюсовыми шаблонами с этим сложно не согласиться. Закат солнца вручную. Степанов рыдает кровавыми слезами.
Ну это примерно как реализовывать препроцессором в крестах хацкильные фичи.
Сраная сишка катится в сраное говно.
Нечто таки придумали. Этим нечто, к сожалению, оказались кресты.
Необходимость максимальной совместимости с сишкой сильно попортила всем кровь (особенно товарищу Бьёрну), но зато помогла языку подняться. Плюсы бы просто не взлетели без этой совместимости.
Закись нескольких языков и парадигм в одном даёт широкий простор для проектирования, но, к сожалению, частенько выносит мозг, а также накладывают определённые рамки на уровень программистов, способных писать вменяемый код.
В любом случае, обвинять кого-то в этом у меня нет повода.
Согласен
Тут уместна цитата создателя ирланга:
I saw C++ coming and read the book - or at least tried to read the book - there's a dent in the wall behind my piano, where the book hit the wall - Improvements to C should make things
easier not more complicated, I thought.
http://erlang.org/pipermail/erlang-questions/attachments/20130124/0d4405fc/attachment.html
Я тоже посмеялся. В теории никто не запрещает использовать процедурное сишное подмножество c++, которое в некотором смысле easer. Но пара прикрученных по бокам парадигм делает c++ в целом несравненно более сложным, чем сплав пролога со smalltalk.
Думаю я б так и писал на крестах. Собственно пытаюсь сохранять структурно-процедурные традиции и в жабе. Исключения, женерики и GC сильно облегчают работу по сравнению с сишкой.
Проблема в том что рано или поздно сталкиваешься с чужим кодом и его поддержкой.
впрочем, тебе стоит только начать, и презираемые кресты из гадкого утёнка легко могут преобразиться в нечто более приятное
и да, у нас есть печеньки
int(int)
float(void)
?
Поясните мысль
но это не очень то, что написал тарас
clang++ 3.0 (tags/RELEASE_30/final)
С флагами -pedantic -Wall собирают без проблем.
Это Спарта Си, тут солнце выкатывают и закатывают вручную, и автоматом освобождается разве что память, выделенная malloca.
> может создаться впечатление
> Но никто не заставляет компилятор так себя вести
Читаем стандарт. На 3 раза. Чтобы впечатлений не создавалось.
Процитирую крестовый, но в сишном должно быть аналогично:
2.13.4 String literals
An ordinary string literal has type “array of n const char” and static storage duration, where n is the size of the string as defined below, and is initialized with the given characters.
A wide string literal has type “array of n const wchar_t” and has static storage duration, where n is the size of the string as defined below, and is initialized with the given characters.
3.7.1 Static storage duration
All objects which neither have dynamic storage duration nor are local have static storage duration. The storage for these objects shall last for the duration of the program
Стандарт заставляет.
Код корректен, не понимаю проблемы.
Я вижу Курочку свою.
Я вижу братьев и сестер своих.
Вижу весь Род свой до последнего колена.
Они зовут меня
Занять мое место среди них
В залах Говнокода, месте,
Где сильные духом будут жить вечно.