Size: a a a

2020 September 11

CD

Constantine Drozdov in pro.cxx
где-то я даже такое видел...
источник

CD

Constantine Drozdov in pro.cxx
а, точно, кажется именно так написана винда
источник

PS

Pavel Samolysov in pro.cxx
Intel mkl-dnn разве не так написаны? Наружу торчит c-ное апи, основное тело библиотеки написано на c++ и реализует это си-ное апи, при этом есть ещё и c++ header-only обёртка над си-ным апи. https://github.com/oneapi-src/oneDNN/blob/master/include/dnnl.hpp
источник

VK

Valentin Kornienko in pro.cxx
Да вроде много кто так делает
источник

VK

Valentin Kornienko in pro.cxx
Rlottie от Samsung так же
источник

AN

Alexander N in pro.cxx
Konstantin
По-моему, только так все и делают
Просто это писать врапперы вокруг вообще всего придётся, т.е например
Context* ctx =  createContext(...);
SomeMethod(ctx, ...);

вместо
 auto ctx = make_unique<Context>(...);
ctx->someMethod(...);
источник

АК

Александр Караев... in pro.cxx
Constantine Drozdov
а, точно, кажется именно так написана винда
так точно написан DirectX
источник

ГH

Гласси Hudobin in pro.cxx
В этом чате нельзя произносить слово СОМ?
источник

AN

Alexander N in pro.cxx
Просто я тут забурился немного в спеку XLSX, со всеми его приколами из серии чарты, ссылки, формулы и прочее и думал если писать либу, то так, чтобы потом можно было её юзать через ffi/LoadLibrary/dlopen из python/ruby и даже мерзости типа PHP. Я уже подумываю, а что если савтогенерить C API :)
источник

AB

Aleksei Budyakov in pro.cxx
Александр Караев
так точно написан DirectX
Можете пояснить в чем преимущества такого подхода?
источник

АК

Александр Караев... in pro.cxx
Aleksei Budyakov
Можете пояснить в чем преимущества такого подхода?
я не могу утверждать, что это оптимальный подход, но попытаюсь пояснить:
1. для API принято использовать C-API, особенно для таких низкоуровневых, как графика - просто потому что это единственный кросс-языковой тип API
2. при этом писать саму реализацию можно на чём угодно, для DX выбрали C++, могли с таким же успехом взять любой другой язык
источник

АК

Александр Караев... in pro.cxx
libc для android написана на C++ :)
источник

PS

Pavel Samolysov in pro.cxx
Кстати, в LLVM даже свою версию libc сейчас пишут на C++. Бегло просмотрев репозиторий, пришел к выводу, что C-апи потом генерируется.
источник

PS

Pavel Samolysov in pro.cxx
Опередили
источник

LA

Liber Azerate in pro.cxx
Andrei K
latest включен?
Конечно
источник

VK

Vladimir Kostylev in pro.cxx
Liber Azerate
Где лучше всего на данный момент поддерживаются модули? Я что-то пытался в вижаке попробовать с ними, однако собрался разве самый минимум, с import std.core. Красиво, конечно, однако когда я пытался сделать свой модуль, хотя бы банально просто сделать пустой модуль... Во-первых, module всё время воспринимался вижаком как идентификатор... Или ещё %список_ошибок%, а также импортировать этот модуль тоже не получилось – не находился. Вижак по умолчанию пока не подхватывает модули? Я видел кучу примеров в доках, такое впечатление, что они должны были бы компилироваться. Или предполагается пока вручную через cl? В общем, не пойму что-то
Это больше для supapro, наверное, но в целом работают модули в Visual Studio. Хотя и не без ошибок пока. Основные моменты у них на сайте расписаны. Если кратко, то нужно включить /experimental:module, сами файлы с модулями имеют расширение *.ixx, в их свойствах указать Item Type: C/C++ compiler (и м.б. ещё Excluded From Build: No). Для "internal partition" расширение *.cpp и в свойствах файла добавить параметр командной строки "/module:internalPartition".

Ошибка самая распространённая -- это "C3474 could not open output file '*.ifc'", лечится просто переключением Release-Debug и обратно на панели инструментов (просто переключиться туда-сюда без перекомпиляции). Другие ошибки тоже могут быть, у меня один раз /из двух))/ с "internal partition" что-то не работало, переделал на обычный partition, заработало. Когда библиотеку Eigen в модуле пытаюсь использовать, то "internal compiler error" получаю. Ну и Intellisense, как обычно, пока с модулями не работает.
источник

LA

Liber Azerate in pro.cxx
Vladimir Kostylev
Это больше для supapro, наверное, но в целом работают модули в Visual Studio. Хотя и не без ошибок пока. Основные моменты у них на сайте расписаны. Если кратко, то нужно включить /experimental:module, сами файлы с модулями имеют расширение *.ixx, в их свойствах указать Item Type: C/C++ compiler (и м.б. ещё Excluded From Build: No). Для "internal partition" расширение *.cpp и в свойствах файла добавить параметр командной строки "/module:internalPartition".

Ошибка самая распространённая -- это "C3474 could not open output file '*.ifc'", лечится просто переключением Release-Debug и обратно на панели инструментов (просто переключиться туда-сюда без перекомпиляции). Другие ошибки тоже могут быть, у меня один раз /из двух))/ с "internal partition" что-то не работало, переделал на обычный partition, заработало. Когда библиотеку Eigen в модуле пытаюсь использовать, то "internal compiler error" получаю. Ну и Intellisense, как обычно, пока с модулями не работает.
Ну, я бы не спрашивал, если бы Уже не попробовал всё то, что у них на сайте написано. Естественно, все необходимые опции включены. Впрочем, спасибо, проверю ещё раз.
источник

VK

Vladimir Kostylev in pro.cxx
Liber Azerate
Ну, я бы не спрашивал, если бы Уже не попробовал всё то, что у них на сайте написано. Естественно, все необходимые опции включены. Впрочем, спасибо, проверю ещё раз.
Главное, это "Item Type: C/C++ compiler" указать (про это в той статье вроде не сказано).
источник

LA

Liber Azerate in pro.cxx
Vladimir Kostylev
Главное, это "Item Type: C/C++ compiler" указать (про это в той статье вроде не сказано).
Вот судя по всему в этом был затык как раз. Спасибо.
источник

VK

Vladimir Kostylev in pro.cxx
Ещё перекомпилировать их вручную, если что-то добавил-поменял, — неудобно, но работает.
источник