Как создать 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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