Войти
ФлеймФорумОбщее

Вопросы (783 стр)

Страницы: 1782 783 784 7851002 Следующая »
#11730
15:26, 14 ноя. 2019

Dmitry_Milk
Так а разве struct app_data_t в теле функции не является форвард декларацией?


#11731
16:18, 14 ноя. 2019

Так у тебя не в теле, у тебя в аргументах.

#11732
16:19, 14 ноя. 2019

Dmitry_Milk
Так а разве struct app_data_t в аргументах функции не является форвард декларацией?

#11733
16:42, 14 ноя. 2019

Зачем в крестах поломали совместимость функций с сями?
Я об этом кривом extern "C".

#11734
16:43, 14 ноя. 2019

nes
Перегрузки

#11735
16:48, 14 ноя. 2019
// Цэ фунхсий
void foo(void);
// Цэ++ фунхсий
void foo();
void foo(int a);
void foo(int a, float b);
// Линкерий
_foo
_foo@1
_foo@2
#11736
16:54, 14 ноя. 2019

nes
Ну и как их называть? Одинаковое имя давать нельзя.

#11737
16:55, 14 ноя. 2019

1 frag / 2 deaths
Так я привел пример для нескольких версий фу.

#11738
17:01, 14 ноя. 2019

nes
А если в список посередине дописать foo(float c), то перенумеруешь? Имя перегрузки должно содержать информацию о сигнатуре.

#11739
17:05, 14 ноя. 2019

Mangling в крестах - занятная штука. Там надо кодировать пространство имён и все типы аргументов функции. В результате безобидная функция foo с парой аргументов и где-нибудь в шаблонном классе будет иметь имя в несколько строк.

#11740
17:17, 14 ноя. 2019

Ну как-нибудь так:

void foo();
void foo(int);
void foo(float);
void foo(void(*)());
void foo(string(*)(char));
void foo(array(*)(int, float, string));
void foo(list(*)(map(*)(int)));
_foo@void
_foo@int
_foo@float
_foo@@void@void
_foo@@string@char
_foo@@array@int,float,string
_foo@@list@@map@int
#11741
17:23, 14 ноя. 2019

Подождите. extern "C" - это ж не столько про манглинг, сколько про конвенцию?

#11742
17:24, 14 ноя. 2019

Dmitry_Milk
Разве в Цэ используется что-то отличное от cdecl?

#11743
17:25, 14 ноя. 2019

nes
На самом деле, оно вот так:

_Z3foof
_Z3fooi
_Z3fooPFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE
_Z3fooPFvvE
_Z3foov
#11744
17:35, 14 ноя. 2019

nes
> Разве в Цэ используется что-то отличное от cdecl?

nes
> Зачем [b]в крестах[/b] поломали совместимость функций с сями?
> Я об этом кривом extern "C"

?

Страницы: 1782 783 784 7851002 Следующая »
ФлеймФорумОбщее