Программы на C++. Форум разработчиков
-
Anonymous
Как разместить неконструктурную функцию вызов в C ++?
Сообщение
Anonymous »
C ++ имеет новый синтаксис, который вызывает конструктор с пользовательским выходным адресом.
Код: Выделить всё
struct external_class{ unsigned short data; }; struct external_class *_ZN14external_classC1Ev(struct external_class *out); struct external_class *_Z17external_functionv(struct external_class *out); void construst_external_class_at(struct external_class *out){ _ZN14external_classC1Ev(out); } void return_external_function_at(struct external_class *out){ _Z17external_functionv(out); }
здесь незакончен (замените/что?
Код: Выделить всё
#include class external_class{ public: external_class(); ~external_class(); unsigned short data; }; external_class external_function(); extern "C" void construst_external_class_at(external_class *out){ new(out) external_class; } extern "C" void return_external_function_at(external_class *out){ /* what? */ }
Godbolt
Подробнее здесь:
https://stackoverflow.com/questions/796 ... -call-in-c
1749470975
Anonymous
C ++ имеет новый синтаксис, который вызывает конструктор с пользовательским выходным адресом.[code]struct external_class{ unsigned short data; }; struct external_class *_ZN14external_classC1Ev(struct external_class *out); struct external_class *_Z17external_functionv(struct external_class *out); void construst_external_class_at(struct external_class *out){ _ZN14external_classC1Ev(out); } void return_external_function_at(struct external_class *out){ _Z17external_functionv(out); }[/code] здесь незакончен (замените/что?[code]#include class external_class{ public: external_class(); ~external_class(); unsigned short data; }; external_class external_function(); extern "C" void construst_external_class_at(external_class *out){ new(out) external_class; } extern "C" void return_external_function_at(external_class *out){ /* what? */ }[/code] Godbolt
Подробнее здесь: [url]https://stackoverflow.com/questions/79658813/how-to-placement-non-constructor-function-call-in-c[/url]