- 1
int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr){
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+24
int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr){
http://ideone.com/BcZ7Ja
LispGovno 02.02.2014 21:16 # +1
kegdan 02.02.2014 21:19 # +8
Psionic 03.02.2014 18:02 # +4
anonimb84a2f6fd141 03.02.2014 21:26 # +5
Psionic 04.02.2014 11:03 # 0
bormand 04.02.2014 13:19 # +1
А в чем смысл? Разве что если хочется подгадить юзеру, чтобы ему IDE в подсказках показывало бесмыссленное и беспощадное void test(int, int), с которым без доки не разобраться?
Имхо, даже в тайпдефе опускание имен аргументов и то сомнительно.
anonimb84a2f6fd141 03.02.2014 21:26 # −5
WGH 02.02.2014 21:19 # +3
LispGovno 02.02.2014 21:21 # +3
WGH 02.02.2014 21:24 # +2
LispGovno 02.02.2014 21:27 # +1
WGH 02.02.2014 21:30 # 0
LispGovno 02.02.2014 21:32 # +3
guest 04.02.2014 12:54 # 0
bormand 03.02.2014 00:08 # +3
bormand 02.02.2014 21:35 # +4
2. Example: the declaration
void point(int = 3, int = 4);
declares a function that can be called with zero, one, or two arguments of type int.
anonimb84a2f6fd141 03.02.2014 00:42 # 0
defecate-plusplus 03.02.2014 00:58 # +5
а именованные параметры, как обычно, уже были в симпсонах есть только в бусте, удобства на улице
anonimb84a2f6fd141 03.02.2014 01:07 # 0
defecate-plusplus 03.02.2014 01:09 # 0
а имена параметров необязательны, даже в определении
anonimb84a2f6fd141 03.02.2014 06:05 # 0
bormand 03.02.2014 06:08 # +3
В крестах есть дефолтные аргументы (передавать в произвольном порядке нельзя, можно только тупо опускать несколько последних): А в сишке дефолтных аргументов нет ни в каком виде, как и перегрузки функций.
crastinus 03.02.2014 10:00 # +3
ISO/IEC 14882-98
LispGovno 03.02.2014 10:26 # 0
Вот этот всё время забываю ISO/IEC TR 19768:2007, но как-то пофиг.
LispGovno 03.02.2014 10:30 # +1
roman-kashitsyn 03.02.2014 10:30 # +3
LispGovno 03.02.2014 10:41 # +2
14 и 17 - это один стандарт между прочим. Просто предварительный выпуск чтобы компиляторостроители не ждали.
Soul_re@ver 02.02.2014 21:27 # +6
В таком случае: std::function
В любом случае тайпдеф здесь бы смотрелся гораздо лучше и понятнее.
Почему на гейдеве так не любят создавать алиасы типам? Им нравится разбирать месиво из скобочек? Они экономят несколько байт в памяти и несколько наносекунд, когда компилируют? Их возбуждает удар грабель по лбу?
bormand 02.02.2014 21:28 # 0
LispGovno 02.02.2014 21:29 # 0
bormand 02.02.2014 21:36 # +1
P.S. А зачем вообще люди опускают имена аргументов?
void test(int width, int height) всяко понятней, чем безликий void test(int, int).
Abbath 02.02.2014 22:48 # +1
"Хули он там тестит высоту, ширину какой-то херни"
"Почему ничего не возвращает? Глобальная магия-шмагия?"
guest 04.02.2014 12:57 # +1
tirinox 03.02.2014 00:02 # +7
defecate-plusplus 03.02.2014 00:38 # +11
который спускает скрижали оттуда
guest8 11.07.2020 03:25 # −999