Perguntas com a marcação «templates»

187
Argumentos de modelo padrão para modelos de função

Por que argumentos de modelo padrão são permitidos apenas em modelos de classe? Por que não podemos definir um tipo padrão em um modelo de função de membro? Por exemplo: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Em vez disso, o C ++ força que os...

161
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...

159
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 ++?...

151
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...

149
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 ......