LINUX.ORG.RU

История изменений

Исправление rumgot, (текущая версия) :

#include <string>

struct Foo {
    std::string s;
    size_t b;
    size_t e;
};

template <typename... T>
auto Baz(Foo&& foo, T&&... t) {}

int main() {

    // Думаю, чтобы была возможна эта конструкция
    // (здесь тип второго аргумента должен быть выведен компилятором):
    Baz({"q", 10, 20}, {"g", 11, 50});

    // Должна быть возможна эта конструкция:
    auto t = {"q",10,20};
    // но эта конструкция сейчас невозможна, т.к. не описано в стандарте,
    // какой тут должен быть тип у переменной t
    // (по идее логично выводить это как tuple, возможно в будущем так и сделают)
}


Исходная версия rumgot, :

#include <string>

struct Foo {
    std::string s;
    size_t b;
    size_t e;
};

template <typename... T>
auto Baz(Foo&& foo, T&&... t) {}

int main() {

    // Думаю, чтобы была возможна эта конструкция
    // (здесь тип второго аргумента должен быть выведен компилятором):
    Baz({"q", 10, 20}, {"g", 11, 50});

    // Должна быть возможна эта конструкция:
    auto t = {"q",10,20};
    // но эта конструкция сейчас невозможна, т.к. не описано в стандарте,
    // какой тут должен быть тип у переменной t
}