Я пишу библиотеку для использования в моих проектах. В этом я надеялся обернуть стандартную библиотеку c в пространстве имен библиотеки и в пространстве имен cstd, чтобы избежать ее функций в глобальном пространстве имен. Однако из предыдущего вопроса, который я задал, и из того, что я тестировал, я не могу просто # включить все в пространство имен. Есть какой-либо способ сделать это?Обтекание внешних библиотек в пространствах имен
2
A
ответ
3
Я сомневаюсь, если вы не захотите переписать все.
Сам язык C не имеет понятия пространств имен, поэтому все, что использует стандартная библиотека C, должно опираться на то, что все, что он ищет, находится в глобальном пространстве имен.
Если вы просто обернуты пространство имен вокруг ваших директив #includes, компилятор не сможет найти что-нибудь, потому что он не будет знать, что пространство имен, чтобы посмотреть в.
1
Обычный подход был бы поставить 3-й участник включает в файлы реализации, чтобы они не загрязняли ваш api.
myapi.hpp
void coolthing(int howcool);
myapi.cpp
#include <coollib.h>
void coolthing(int howcool)
{
coollib_coolthing(howcool);
}
Смежные вопросы
- 1. Вопрос о внешних библиотеках и пространствах имен
- 2. Обработка внешних библиотек и хеширование имен
- 3. внешних библиотек в CodeIgniter
- 4. Вызывающие функции в пространствах имен
- 5. Класс в разных пространствах имен
- 6. Объявление классов в пространствах имен
- 7. PHP Автозагрузка в пространствах имен
- 8. Отношения в разных пространствах имен
- 9. Видимость классов в пространствах имен
- 10. Добавление внешних библиотек проекта
- 11. Создание внешних Javascript-библиотек
- 12. Иерархии внешних библиотек
- 13. CMake - поиск внешних библиотек
- 14. Использование внешних библиотек Java
- 15. Вопрос о пространствах имен javascript
- 16. Добавление библиотек внешних графиков
- 17. Обтекание/преобразование .NET-библиотек в .NET Core
- 18. Использование внешних библиотек в REDHAWK
- 19. Отладка внешних библиотек в C#
- 20. Добавление внешних библиотек в Angular2
- 21. Встроенная функция в пространствах имен в C++
- 22. Group в пространствах имен в SignalR
- 23. Конфликт в пространствах имен в WPF Xaml
- 24. имен столкновений в пространствах имен в модулях питона
- 25. Операция разрешения перегрузки оператора в пространствах имен
- 26. or'ing перечисления, которые находятся в пространствах имен
- 27. Использовать класс в двух разных пространствах имен
- 28. Java: Вперед объявления классов в пространствах имен
- 29. WindowsFormsApplicationBase не существует в пространствах имен C#?
- 30. Динамический поиск функций в Clojure пространствах имен