Resultados da pesquisa a pedido "template-meta-programming"
Uso do argumento void template na implementação do idioma de detecção precoce
Non4502 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4502.pdf]os autores descrevem uma implementação precoce do idioma de detecção que encapsula ovoid_t truque. Aqui está sua definição, juntamente com o uso para definir ...
Aliases de modelos variadicos como argumentos de modelo
Primeiro algum código, depois algum contexto, então a pergunta:
É possível invocar um método com todas as combinações possíveis de K (com repetição) de argumentos passados em uma tupla?
O comportamento desejado pode ser ilustrado da seguinte maneira: void foo(int x, int y) { std::cout << x << " " << y << std::endl; } int main() { all_combinations<2>(foo, std::make_tuple(1, 2)); // K = 2 // to run: // foo(1, 1) // foo(1, 2) // ...
Escolha a função a ser aplicada com base na validade de uma expressão
O problema é o seguinte, emC++14: Vamos ter duas funçõesFV&& valid_f, FI&& invalid_fe argumentosArgs&&... argsA funçãoapply_on_validity deve aplicarvalid_f emargs se a expressãostd::forward<FV>(valid_f)(std::forward<Args>(args)...) é ...
Verifique se um conjunto de tipos é um subconjunto do outro
Como verificar se um pacote de parâmetros (interpretado como um conjunto) é um subconjunto de outro? Até agora eu só tenho o quadro (usando std :: tuple), mas nenhuma funcionalidade. #include <tuple> #include <type_traits> template <typename, ...
tipo de localização, para o qual is_constructible mantém
Eu estava brincando com modelos e estava tentando implementar o seguinte ajudante. first_constructible<Types..., Args...>::typeque retornaria o primeiro tipo deTypes que é construtível a partir deArgs.... O primeiro problema obviamente é ter ...
Como encomendar tipos em tempo de compilação?
Considere o seguinte programa: #include <tuple> #include <vector> #include <iostream> #include <type_traits> template <class T> struct ordered {}; template <class... T> struct ordered<std::tuple<T...>> { using type = /* a reordered tuple */; }; ...