Perguntas com a marcação «templates»

A tag templates é usada em vários contextos: programação genérica (especialmente C ++) e geração de dados / documentos usando mecanismos de template. Ao usar esta tag em questões pesadas da implementação - marque o idioma do código em que a implementação está escrita.

5
Como verificar se existe uma variável em um modelo FreeMarker?
Eu tenho um modelo Freemarker que contém um monte de espaços reservados para os quais os valores são fornecidos quando o modelo é processado. Quero incluir condicionalmente parte do modelo se a variável userName for fornecida, algo como: [#if_exists userName] Hi ${userName}, How are you? [/#if_exists] No entanto, o manual …



7
std :: function vs template
Graças ao C ++ 11, recebemos a std::functionfamília de wrappers functor. Infelizmente, continuo ouvindo apenas coisas ruins sobre essas novas adições. O mais popular é que eles são terrivelmente lentos. Eu testei e eles realmente são ruins em comparação com os modelos. #include <iostream> #include <functional> #include <string> #include <chrono> …

14
Modelos C ++ que aceitam apenas certos tipos
Em Java, você pode definir classe genérica que aceita apenas tipos que estendem a classe de sua escolha, por exemplo: public class ObservableList<T extends List> { ... } Isso é feito usando a palavra-chave "extends". Existe algum equivalente simples a essa palavra-chave em C ++?
159 c++  templates 


3
Quando usar std :: forward para encaminhar argumentos?
C ++ 0x mostra um exemplo de uso std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Quando é vantajoso usar std::forwardsempre? Além disso, ele requer o uso &&na declaração de parâmetros, é válido em todos os casos? Eu pensei que você tinha que passar temporários para uma função se …



4
Argumentos padrão do modelo
Se eu puder fazer o seguinte: template <typename T = int> class Foo{ }; Por que não estou autorizado a fazer o seguinte em principal? Foo me; Mas devo especificar o seguinte: Foo<int> me; O C ++ 11 introduziu argumentos de modelo padrão e, no momento, eles estão sendo esquivos …
151 c++  templates 

2
Como o `void_t` funciona
Eu assisti a palestra de Walter Brown no Cppcon14 sobre programação de modelos modernos ( Parte I , Parte II ), onde ele apresentou sua void_ttécnica SFINAE. Exemplo: Dado um modelo de variável simples que avalia voidse todos os argumentos do modelo estão bem formados: template< class ... > using …
149 c++  templates  c++14  sfinae 

3
Inicialização de membro estático em um modelo de classe
Eu gostaria de fazer isso: template <typename T> struct S { ... static double something_relevant = 1.5; }; mas não posso, pois something_relevantnão é do tipo integral. Não depende T, mas o código existente depende de ser um membro estático S. Como S é modelo, não posso colocar a definição …
148 c++  templates  static 


10
Como emular a inicialização da matriz C “int arr [] = {e1, e2, e3,…}” com o comportamento std :: array?
(Nota: Esta questão é sobre não precisar especificar o número de elementos e ainda permitir que tipos aninhados sejam inicializados diretamente.) Esta questão discute os usos restantes para uma matriz C como int arr[20];. Em sua resposta , @James Kanze mostra uma das últimas fortalezas das matrizes C, são características …


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.