Perguntas com a marcação «variadic-templates»

8
"Desembalar" uma tupla para chamar um ponteiro de função correspondente
Estou tentando armazenar em um std::tuplenúmero variável de valores, que mais tarde serão usados ​​como argumentos para uma chamada para um ponteiro de função que corresponda aos tipos armazenados. Eu criei um exemplo simplificado mostrando o problema que estou tentando resolver: #include <iostream> #include <tuple> void f(int a, double b, …

6
make_unique e encaminhamento perfeito
Por que não há std::make_uniquemodelo de função na biblioteca C ++ 11 padrão? eu acho std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); um pouco detalhado. O seguinte não seria muito melhor? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Isso oculta newbem e apenas menciona o tipo uma vez. De qualquer forma, aqui está …



2
Quais são as regras para o token “…” no contexto de modelos variadic?
No C ++ 11, existem modelos variados como este: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } Existem algumas curiosidades sobre isso: A expressão std::forward<Args>(args)...usa ambos Argse, argsmas apenas um ...token. Além disso, std::forwardé uma função de modelo não variável que usa …

4
Como armazenar argumentos de modelo variadic?
É possível armazenar um pacote de parâmetros de alguma forma para um uso posterior? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public: Action(std::function<void(T...)> f, T... args) : f(f), args(args) {} void act(){ f(args); // <--- such that this will be possible …


10
Pretty-print std :: tuple
Esta é uma continuação da minha pergunta anterior sobre contêineres STL de impressão bonita , para a qual conseguimos desenvolver uma solução muito elegante e totalmente geral. Nesta próxima etapa, gostaria de incluir a impressão bonita para std::tuple<Args...>, usando modelos variadic (portanto, é estritamente C ++ 11). Pois std::pair<S,T>, eu …

3
Como posso criar uma maneira cartesiana de produtos de listas de tipos em C ++?
Auto-explicativo. Basicamente, digamos que eu tenha listas de tipos assim: using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; Eles podem ser um número variável de listas de tipos. Como obtenho uma lista de tipos de produto cartesiano? result = type_list< type_list<int, somestructB, double>, type_list<int, …

3
Modelos variáveis: desdobrar argumentos em grupos
Eu tenho uma função que leva dois argumentos: template <typename T1, typename T2> void foo(T1 arg1, T2 arg2) { std::cout << arg1 << " + " << arg2 << '\n'; } E uma variável que deve encaminhar seus argumentos em pares: template <typename... Args> void bar(Args&&... args) { static_assert(sizeof...(Args) % …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.