- 1
- 2
- 3
typedef class foo_c{
...
} foo_t;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+4
typedef class foo_c{
...
} foo_t;
Почему мне хочется использовать такой синтаксис?
kurwa 05.04.2016 01:09 # 0
Почему мне хочется использовать такой синтаксис?
guest 05.04.2016 01:47 # 0
roman-kashitsyn 05.04.2016 11:11 # +1
кложураты
3_dar 05.04.2016 19:29 # 0
inkanus-gray 05.04.2016 19:51 # 0
Не путать с closure compiler.
Antervis 05.04.2016 09:18 # 0
LispGovno 05.04.2016 09:25 # 0
У нас в школе был чувак с фамилией долбач. В НАШЕЙ школе он протянул меньше месяца.
defecate-plusplus 05.04.2016 10:21 # +2
очень давно в сишке требовалось либо struct foo bar; при объявлении переменных типа структуры, либо то, как у тебя наверху добавить алиас через typedef, тогда можно алиас без struct
но это было пару десятков лет назад
kipar 05.04.2016 10:26 # +3
Как там, в 2031?
Или в С11 что-то поменяли с алиасами, а я пропустил.
defecate-plusplus 05.04.2016 10:36 # 0
(по факту, все сишные компиляторы, которые я оставил в прошлой жизни, вот эту ебалайку со struct не просили уже давно)
defecate-plusplus 05.04.2016 10:43 # +2
на правах оффтопа - нахуя?
почему в С++ нет проблемы понять, что означает имя типа, а в С продолжают жрать кактус?
guest 05.04.2016 13:10 # 0
Правда в большинстве api в аргументах функций хладнокровно пишут struсt foo_c * foo без всяких typedefов, но у этих наркоманов свое оправдание есть - это чтоб пользователи сразу видели, структура там или простой тип.
defecate-plusplus 05.04.2016 13:17 # 0
если например вышел новый стандарт, то априори у тебя код не соберется старым компилятором
> структура там или простой тип
компилятору вообще насрать - он знает, сколько это занимает места, и кладёт копию на стек
поведение структуры от int ничем не отличается
guest 05.04.2016 14:07 # +1
Если struct - повод насторожиться, если не struct - скорее всего это очередной enum или просто int по старой традиции переопределили.
defecate-plusplus 05.04.2016 14:43 # 0
анахронизм какой-то, неужели не очевидно
guest 05.04.2016 15:30 # 0
А вот если она передается как указатель - я сразу буду знать, можно ли под нее локальную переменную выделить или не стоит и лучше только статическими делать или как-то еще экономить.
guest 05.04.2016 17:48 # 0
никто не пишет struct давно
все его затайпдефали
Antervis 05.04.2016 14:41 # 0
Старому коду как-то посрать на выход новых стандартов, речь идет об обратной совместимости.
> поведение структуры от int ничем не отличается
если говорить о плюсах, то для нетривиальных структур отличается.
defecate-plusplus 05.04.2016 14:56 # +3
теперь я понял что ты имел в виду
сишка позволяла, а долбоёбы с удовольствием пользовались тем, что теги структур и другие имена имеют непересекающиеся пространства имён + есть фанатики этой "фичи"
ну тогда да, им уже ничего не поможет
1024-- 05.04.2016 15:43 # 0
Это сильно/как-нибудь мешает?
С помощью typedef можно задать типу произвольный псевдоним, т.е. он не будет выделенным словом, т.е. в грамматике будет той же сущностью, что и обычный идентификатор, т.е. парсер и так с этим трахается, ему хуже не будет.
defecate-plusplus 05.04.2016 15:56 # +1
ты добавляешь тег структуры в пространство имен, где переменные и другие имена типов, и многие фанатики считают, что так делать харам
т.е.
введение разрешение на пропуск struct сделает "старый код" из п.1 нерабочим
1024-- 05.04.2016 16:32 # 0