- 1
- 2
- 3
- 4
void get_me(const char **retval)
{
*retval = "Hello, Word!";
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+125
void get_me(const char **retval)
{
*retval = "Hello, Word!";
}
Надейся на компилятор...
bormand 17.02.2013 07:50 # +2
Ну и кто додумался это плюсануть? Еще один не знающий сишку? Идите почитайте уже какую-нибудь книгу по си, и тогда поймете почему так, и куда надо писать конст, чтобы было не так:
absolut 17.02.2013 09:27 # +1
scriptin 17.02.2013 14:06 # +1
TarasB 17.02.2013 14:44 # +1
absolut 17.02.2013 15:59 # +2
TarasB 18.02.2013 17:26 # +1
absolut 18.02.2013 21:34 # 0
TarasB 18.02.2013 21:42 # 0
absolut 18.02.2013 22:03 # 0
bormand 18.02.2013 23:23 # 0
absolut 19.02.2013 08:10 # +4
defecate-plusplus 19.02.2013 09:19 # 0
так уже ведь
absolut 19.02.2013 09:44 # 0
roman-kashitsyn 19.02.2013 09:47 # +1
absolut 19.02.2013 10:17 # 0
Единственная прикольная фишка - это printf_dec_format. Но всё равно обосрались со строками и cv-типами.
Но если для cv можно расширить, то строки в любом случае приводить к (char*), если я правильно понял.
Короче говоря, получается некая специлизация для выбранных типов. А тела однотипных функций для разных типов (какая замысловатая фраза получилась) всё равно придется дуплить.
defecate-plusplus 19.02.2013 10:23 # +1
учитывая, что на дворе 2013 год
больше всего в многострочных макросах (а тут на пару десяток строк постоянно будет выходить) будут вымораживать слеши на концах строк
не говоря уж о том, что подсветка синтаксиса внутри будет, мягко говоря, странной
absolut 19.02.2013 10:32 # +1
по буддийскому календарю и вовсе 2556
>подсветка синтаксиса внутри будет, мягко говоря, странной
это уже проблемы тех, кто фонарик держит
>полное убожество
полностью согласен
roman-kashitsyn 19.02.2013 10:43 # +2
После знакомства с плюсовыми шаблонами с этим сложно не согласиться. Закат солнца вручную. Степанов рыдает кровавыми слезами.
3.14159265 19.02.2013 17:44 # 0
Ну это примерно как реализовывать препроцессором в крестах хацкильные фичи.
Сраная сишка катится в сраное говно.
roman-kashitsyn 19.02.2013 18:03 # 0
3.14159265 19.02.2013 18:11 # 0
Нечто таки придумали. Этим нечто, к сожалению, оказались кресты.
roman-kashitsyn 19.02.2013 18:21 # +1
Необходимость максимальной совместимости с сишкой сильно попортила всем кровь (особенно товарищу Бьёрну), но зато помогла языку подняться. Плюсы бы просто не взлетели без этой совместимости.
Закись нескольких языков и парадигм в одном даёт широкий простор для проектирования, но, к сожалению, частенько выносит мозг, а также накладывают определённые рамки на уровень программистов, способных писать вменяемый код.
В любом случае, обвинять кого-то в этом у меня нет повода.
3.14159265 20.02.2013 17:56 # 0
Согласен
Тут уместна цитата создателя ирланга:
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
roman-kashitsyn 20.02.2013 18:03 # +1
Я тоже посмеялся. В теории никто не запрещает использовать процедурное сишное подмножество c++, которое в некотором смысле easer. Но пара прикрученных по бокам парадигм делает c++ в целом несравненно более сложным, чем сплав пролога со smalltalk.
3.14159265 20.02.2013 18:10 # 0
Думаю я б так и писал на крестах. Собственно пытаюсь сохранять структурно-процедурные традиции и в жабе. Исключения, женерики и GC сильно облегчают работу по сравнению с сишкой.
Проблема в том что рано или поздно сталкиваешься с чужим кодом и его поддержкой.
defecate-plusplus 20.02.2013 19:38 # +4
впрочем, тебе стоит только начать, и презираемые кресты из гадкого утёнка легко могут преобразиться в нечто более приятное
и да, у нас есть печеньки
TarasB 21.02.2013 11:36 # 0
int(int)
float(void)
?
roman-kashitsyn 21.02.2013 11:47 # 0
Поясните мысль
defecate-plusplus 21.02.2013 12:09 # 0
но это не очень то, что написал тарас
TarasB 21.02.2013 13:11 # 0
roman-kashitsyn 21.02.2013 13:23 # 0
clang++ 3.0 (tags/RELEASE_30/final)
С флагами -pedantic -Wall собирают без проблем.
Novi4oK 17.02.2013 16:17 # −3
bormand 17.02.2013 17:35 # +4
Это Спарта Си, тут солнце выкатывают и закатывают вручную, и автоматом освобождается разве что память, выделенная 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
TarasB 17.02.2013 17:51 # 0
Стандарт заставляет.
bormand 17.02.2013 17:55 # +1
guest 26.02.2013 02:02 # +1
TarasB 17.02.2013 14:43 # +1
Код корректен, не понимаю проблемы.
bormand 17.02.2013 15:10 # +2
LispGovno 17.02.2013 16:01 # +7
Я вижу Курочку свою.
Я вижу братьев и сестер своих.
Вижу весь Род свой до последнего колена.
Они зовут меня
Занять мое место среди них
В залах Говнокода, месте,
Где сильные духом будут жить вечно.