Как создать std::array во время компиляции, где элемент содержит аргументы шаблона?C++

Программы на C++. Форум разработчиков
Anonymous
Как создать std::array во время компиляции, где элемент содержит аргументы шаблона?

Сообщение Anonymous »

У меня есть класс Table и класс Database. Класс Table принимает аргумент шаблона CompileTimeString.
template
class Table
{
public:

//...
};

В классе базы данных я хочу сохранить std::array таблиц. Проблема в том, что имена таблиц различаются.
class Database
{
public:

template
void add_table()
{
//construct a table and add it to the array
}

std::array tables;
};

Все таблицы гарантированно будут известны во время компиляции вместе с их именами. CompileTimeString — это просто абстракция const char[N] с некоторыми удобными функциями. Я хочу добавить таблицы, вызвав add_table(); Добавленные таблицы должны быть сохранены в массиве таблиц. Все это будет сделано во время компиляции.
Есть ли способ добиться того, что я пытаюсь сделать?
Я пробовал варианты следующее:
template
std::array tables;


Подробнее здесь: https://stackoverflow.com/questions/785 ... mplate-arg

Вернуться в «C++»