В C++20 у меня есть определение шаблонной структуры, как показано ниже.
template
struct StateHolder {
std::deque messages;
std::mutex mutex;
std::condition_variable notifier;
};
Для определенного типа я хочу исключить объявление элемента messages.
template
struct StateHolder {
std::mutex mutex;
std::condition_variable notifier;
};
Когда я делаю это в файле заголовка, каким-то образом я получаю следующую ошибку с g++ 11.4.0.
ошибка: явная специализация в области, не относящейся к пространству имен
Какое возможное решение этой проблемы?
При необходимости весь файл выглядит так, как показано ниже
namespace Foo {
class Bar {
// Some other declarations
template
struct StateHolder {
std::deque messages;
std::mutex mutex;
std::condition_variable notifier;
};
template
struct StateHolder {
std::mutex mutex;
std::condition_variable notifier;
};
StateHolder m_integers;
StateHolder m_nothing;
};
};
Подробнее здесь: https://stackoverflow.com/questions/785 ... ialization
Как исключить объявление переменных со специализацией шаблона? [дубликат] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как передать переменную перечисления в структуру со специализацией шаблона для перечисления
Anonymous » » в форуме C++ - 0 Ответы
- 78 Просмотры
-
Последнее сообщение Anonymous
-
-
-
ODB: сопоставление типов PostgreSQL Numeric с C++ int со специализацией value_traits
Anonymous » » в форуме C++ - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-