шаблонный обьект и Variadic templates

105
06 января 2021, 13:50

Создаю по шаблону разные обьекты:

template<typename T>
 T obj = T(5);
using std::cout;
int main()
{
    using V = std::vector<int>;
    cout << obj<int> << std::endl;
    obj<V> = { 1, 2, 3, 4, 5 };
    for (int i : obj<V>)
    cout << i << ' ';
    getchar();
    return 0;
}

Но еще не пробовал создавать обьекты с разным количеством аргументов в конструкторе. Как переписать шаблон и как создавать обьект вышеуказанным способом, чтобы указать 2 и более аргумента конструктора? (Например, мой шаблон не позволит создать специализацию для std::vector<int>(10, 15))

Answer 1

Не знаю, правильно ли понял, что нужно, но вот как можно

template <class T, auto k = 5, auto... args>
T obj = T(k, args...);
int main() {
    using V = std::vector<int>;
    using M = std::vector<std::vector<int>>;
    cout << obj<int> << std::endl;
    for (auto i : obj<V, 10, 15>)
        cout << i << ' ';
    cout << endl;
    obj<M> = { {1,2}, {3,4}, {5,6} };
    for (auto i : obj<M>) {
        for (auto x : i) {
            cout << x << ' ';
        }
        cout << endl;
    }
    return 0;
}
READ ALSO
Проверка валидности указателя в DLL

Проверка валидности указателя в DLL

Задумал написать DLLЧтобы DLL была универсальной настолько, насколько это вообще возможно - решил использовать минимальный "C" интерфейс и хендлы

100
Занесение пути к файлу в переменную c++

Занесение пути к файлу в переменную c++

Всем привет, такой вопрос, я получаю путь к файлу в переменную и далее мне нужно ее использовать для открытия файла, как мне это сделать?

118
Jquery Проверка наличия ключа объекта

Jquery Проверка наличия ключа объекта

подскажите как проверить наличие ключа в объекте именно на Jquery

121
HTML. Таблица заголовок

HTML. Таблица заголовок

Использую таблицу для вывода данныхУ меня есть 4 заголовка в виде

138