Результаты поиска по запросу "variadic-templates"

1 ответ

@Passerby Не точно, но причина, вероятно, в том, что они существуют условно. Таким образом, из одних только определений вы не можете сказать, какие специализации будут фактически существовать, поэтому я думаю, что они не хотели заставлять компиляторы отслеживать это.

я дал эту программу g ++ и clang (оба в Linux, x86_64): #include <iostream> using namespace std; template<char... Cs> struct A { static const string s; static A a; ~A() { cout << "s = " << s << "\n"; } }; template<char... Cs> const string ...

2 ответа

 может отличаться от

реобразовать типы из параметров шаблона переменной в другой тип? Например: template <typename... T> struct single { std::tuple<T...> m_single; }; template <typename... T> struct sequences { single<T...> get(size_t pos) { // I don't know how to ...

1 ответ

Вариативные псевдонимы шаблона в качестве аргументов шаблона

Сначала некоторый код, затем некоторый контекст, затем вопрос: template <typename T> using id = T; template <template <typename...> class F, typename... T> using apply1 = F <T...>; template <template <typename...> class F> struct apply2 { ...

ТОП публикаций

1 ответ

Это также несколько помогает разработчикам компиляторов, потому что их внутреннее представление для шаблонов не должно поддерживать такую ​​ерунду.

вляется обоснованием temp.res # 8,3 [https://timsong-cpp.github.io/cppwp/temp.res#8.3] (8) Срок действия шаблона может быть проверен до любого экземпляра. [Примечание: Зная, какие имена являются именами типов, можно таким образом ...

0 ответов

 если вы все еще заинтересованы.

азделить аргументы шаблона переменной на две половины? Что-то вроде: template <int d> struct a { std::array <int, d> p, q; template <typename ... T> a (T ... t) : p ({half of t...}), q ({other half of t...}) {} };

3 ответа

проверять параметры шаблонов на уникальность

Я хочу, чтобы параметры шаблона с переменными параметрами были уникальными. Я знаю, когда множественное наследование, идентичное наследование классов не допускается. struct A{}; struct B: A, A{}; // errorИспользуя это правило, я сделал ...

2 ответа

Как Concepts-Lite будет взаимодействовать с различными шаблонами?

Я смотрел разговор Бьярна Струструпа вGoing Native 2013 [http://channel9.msdn.com/Events/GoingNative/2013/Opening-Keynote-Bjarne-Stroustrup] и он приводит следующий пример для новой функции C ++ для облегчения понятий. void sort(Container& c); ...

2 ответа

Распаковка аргументов из кортежей

Итак, я пытаюсь выяснить, как это работает:C ++ 11: я могу перейти от нескольких аргументов к кортежу, но могу ли я перейти от кортежа к нескольким ...

3 ответа

 для аргументов больше не требуется иметь внешнюю связь, поэтому, например, в безымянном пространстве имен все в порядке.

твет на stackoverflow (который я, кажется, больше не могу найти), который продемонстрировал, как шаблон variadic может использоваться в C ++ 11 для создания статического массива во время компиляции: template <class T, T... args> struct array_ { ...

8 ответов

с выходом:

родолжение моего предыдущего вопроса осимпатичные печатные контейнеры STL [https://stackoverflow.com/questions/4850473/pretty-print-c-stl-containers], для которого нам удалось разработать очень элегантное и полностью общее решение. На этом ...