Articles of modelos em

C ++ 11: Cálculo de Tempo de Compilação de Matriz

Suponha que eu tenha alguma function constexpr f: constexpr int f(int x) { … } E eu tenho algumas constantes int N conhecidas em tempo de compilation: Ou #define N …; ou const int N = …; conforme necessário pela sua resposta. Eu quero ter um int array X: int X[N] = { f(0), f(1), […]

usando o nome da class em um modelo de class sem parâmetros de modelo

o código vem de um livro C ++ como abaixo: Por que este membro público Link * next não possui argumentos de typename? template class Link { private: static Link* freelist; public: E element; Link* next; // this line confused me…. Link(const E& elemval, Link* nextval = NULL) { element = elemval; next = nextval; […]

Especialização em modelos de alias

Os modelos de alias (14.5.7) podem ser explicitamente especializados (14.7.3)? Meu padrão-fu me falha, e não consigo encontrar um compilador para testar. O texto “quando um template-id se refere à especialização de um modelo de alias” implica sim , mas o exemplo parece referir-se a outra coisa, implicando não . NB Estou trabalhando no n3242, […]

Como conseguir “function de modelo virtual” em C ++

primeiro: eu li e agora sei que uma function de membro de modelo virtual não é (ainda?) possível em C ++. Uma solução seria tornar a class um modelo e, em seguida, usar o argumento de modelo também na function de membro. Mas no contexto da POO, acho que o exemplo abaixo não seria muito […]

parameters do modelo de modelo

Parece entender modelo de modelo param vai me matar :(, deixa eu explicar o equívoco que fiz em minha mente que me confunde: template class B {}; // A templated class Aqui está outro código: template<template class Z = B> // problem is in this line for me class BB{}; observe a linha na lista […]

Dedução parcial de modelo de class C ++ 17

Meu entendimento sobre a dedução de argumento de modelo para a proposta de modelos de class era para homogeneizar o comportamento de funções de modelo e classs de modelo em contextos de dedução. Mas eu acho que eu entendi mal alguma coisa. Se tivermos este object de modelo: template struct test { static constexpr auto […]

Identificando tipos primitivos em modelos

Eu estou procurando uma maneira de identificar tipos primitivos em uma definição de class de modelo. Quero dizer, tendo essa aula: template class A{ void doWork(){ if(T isPrimitiveType()) doSomething(); else doSomethingElse(); } private: T *t; }; Existe alguma maneira de “implementar” isPrimitiveType ().

Detectando constexpr com SFINAE

Estou trabalhando na atualização de alguns códigos C ++ para aproveitar a nova funcionalidade do C ++ 11. Eu tenho uma class de traço com algumas funções retornando tipos fundamentais que na maioria das vezes, mas nem sempre, retornam uma expressão constante. Eu gostaria de fazer coisas diferentes com base em se a function é […]

Chamando uma function para cada argumento de modelo variádico e uma matriz

Então eu tenho algum tipo X : typedef … X; e uma function de modelo f : class void f(X& x_out, const T& arg_in); e depois uma function g : void g(const X* x_array, size_t x_array_size); Eu preciso escrever uma function de template variadico h que faz isso: template void h(Args… args) { constexpr size_t […]

Método de modelo virtual do C ++

Eu tenho uma class abstrata (eu sei que não irá compilar desta forma, mas é para compreensão do que eu quero fazer): class AbstractComputation { public: template virtual void setData(std::string id, T data); template virtual T getData(std::string id); }; class Computation : public AbstractComputation { public: template void setData(std::string id, T data); template T getData(std::string […]