У меня есть большое пространство имен для всего моего проекта, а затем каждый компонент (файл) имеет собственное вложенное пространство имен внутри этого файла. Большое пространство имен называется IEEngine, а вложенные — IEWhatever (например, IEWindow). Но как мне из IEEngine::IEWhatever2 получить доступ к IEEngine::IEWhatever::Something (что-то является классом). Когда я делаю IEEngine::IEWhatever::Something, я получаю сообщение об ошибке, что в пространстве имен IEEngine нет члена IEWhatever. я включил файл, предоставляющий пространство имен IEWWhatever. но этот файл также включает в себя файл, предоставляющий IEWhatever2, поэтому возникает ошибка, говорящая, что IEWhatever не определен (включение помещается перед пространством имен IEWhatever). Как бы мне исправить это IESomething::Something тоже не работает. Я также попробовал
использовать Something = IEWhatever::Something; но это не сработало
IEDisplay.hpp:
#ifndef IEDISPLAY_HPP
#define IEDISPLAY_HPP
#ifndef IEWINDOW_HPP
#include "IEWindow.hpp"
#endif // IEWINDOW_HPP
#include
#include
#include "external/wayland-protocols/tearing-control-v1/tearing-control-v1.h"
#include "external/wayland-protocols/xdg-shell/xdg-shell-client-protocol.h"
#include "external/wayland-protocols/viewporter/viewporter-client-protocol.h"
namespace IEEngine {
namespace IEDisplay {
class WLDisplay {
private:
struct wl_display* display;
struct wl_registry* registry;
struct wl_compositor* compositor;
struct xdg_wm_base* wm_base;
struct wl_seat* seat;
struct wl_pointer* pointer;
struct wl_touch* touch;
struct wl_keyboard* keyboard;
struct wl_shm* shm;
struct wl_cursor_theme* cursor_theme;
struct wl_cursor* cursor;
struct wl_surface* cursor_surface;
struct wp_tearing_control_manager_v1* tearing_manager;
struct wp_viewporter* viewporter;
struct wp_fractional_scale_manager_v1* fractional_scale_manager;
IEWindow::WLWindow window;
};
}
}
#endif // IEDISPLAY_HPP
IEWindow.hpp:
#ifndef IEWINDOW_HPP
#define IEWINDOW_HPP
#ifndef IEDISPLAY_HPP
#include "IEDisplay.hpp"
#endif // IEDISPLAY_HPP
namespace IEEngine {
namespace IEWindow {
class WLWindow {
IEDisplay::WLDisplay display;
int wHeight;
int wWidth;
};
}
}
#endif // IEWINDOW_HPP
Подробнее здесь: https://stackoverflow.com/questions/793 ... amespace-c
Проблемы с доступом к элементам за пределами вложенного пространства имен C ++ ⇐ C++
Программы на C++. Форум разработчиков
1737777329
Anonymous
У меня есть большое пространство имен для всего моего проекта, а затем каждый компонент (файл) имеет собственное вложенное пространство имен внутри этого файла. Большое пространство имен называется IEEngine, а вложенные — IEWhatever (например, IEWindow). Но как мне из IEEngine::IEWhatever2 получить доступ к IEEngine::IEWhatever::Something (что-то является классом). Когда я делаю IEEngine::IEWhatever::Something, я получаю сообщение об ошибке, что в пространстве имен IEEngine нет члена IEWhatever. я включил файл, предоставляющий пространство имен IEWWhatever. но этот файл также включает в себя файл, предоставляющий IEWhatever2, поэтому возникает ошибка, говорящая, что IEWhatever не определен (включение помещается перед пространством имен IEWhatever). Как бы мне исправить это IESomething::Something тоже не работает. Я также попробовал
использовать Something = IEWhatever::Something; но это не сработало
IEDisplay.hpp:
#ifndef IEDISPLAY_HPP
#define IEDISPLAY_HPP
#ifndef IEWINDOW_HPP
#include "IEWindow.hpp"
#endif // IEWINDOW_HPP
#include
#include
#include "external/wayland-protocols/tearing-control-v1/tearing-control-v1.h"
#include "external/wayland-protocols/xdg-shell/xdg-shell-client-protocol.h"
#include "external/wayland-protocols/viewporter/viewporter-client-protocol.h"
namespace IEEngine {
namespace IEDisplay {
class WLDisplay {
private:
struct wl_display* display;
struct wl_registry* registry;
struct wl_compositor* compositor;
struct xdg_wm_base* wm_base;
struct wl_seat* seat;
struct wl_pointer* pointer;
struct wl_touch* touch;
struct wl_keyboard* keyboard;
struct wl_shm* shm;
struct wl_cursor_theme* cursor_theme;
struct wl_cursor* cursor;
struct wl_surface* cursor_surface;
struct wp_tearing_control_manager_v1* tearing_manager;
struct wp_viewporter* viewporter;
struct wp_fractional_scale_manager_v1* fractional_scale_manager;
IEWindow::WLWindow window;
};
}
}
#endif // IEDISPLAY_HPP
IEWindow.hpp:
#ifndef IEWINDOW_HPP
#define IEWINDOW_HPP
#ifndef IEDISPLAY_HPP
#include "IEDisplay.hpp"
#endif // IEDISPLAY_HPP
namespace IEEngine {
namespace IEWindow {
class WLWindow {
IEDisplay::WLDisplay display;
int wHeight;
int wWidth;
};
}
}
#endif // IEWINDOW_HPP
Подробнее здесь: [url]https://stackoverflow.com/questions/79386107/problems-with-accesing-elements-outside-nested-namespace-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия