Articles of Modelos

Modelo de function variádica com expansão de pacote não no último parâmetro

Eu estou querendo saber porque o seguinte código não compila: struct S { template S(T…, int); }; S c{0, 0}; Este código não é compilado com o clang e o GCC 4.8. Aqui está o erro com clang: test.cpp:7:3: error: no matching constructor for initialization of ‘S’ S c{0, 0}; ^~~~~~~ test.cpp:4:5: note: candidate constructor […]

Polimorfismo de Modelos C ++

Eu tenho essa estrutura de classs. class Interface{ … } class Foo : public Interface{ … } template class Container{ … } E eu tenho esse construtor de alguma outra barra de class. Bar(const Container & bar){ … } Quando eu chamo o construtor desta maneira, recebo o erro “sem correspondência de function”. Container container […]

Erro de referência indefinido para o método de modelo

Isso tem me deixado louco pela última hora e meia. Eu sei que é uma coisa pequena, mas não consigo encontrar o que está errado (o fato de que é uma tarde chuvosa de sexta-feira, é claro, não ajuda). Eu defini a seguinte class que conterá parâmetros de configuração lidos de um arquivo e me […]

Os parâmetros de modelo de um construtor podem ser explicitamente especificados?

Um construtor de uma class pode ser uma function de modelo. No ponto em que tal construtor é chamado, o compilador geralmente analisa os argumentos dados ao construtor e determina os parâmetros de modelo usados ​​a partir deles. Existe alguma syntax para especificar os parâmetros do modelo explicitamente? Um exemplo inventado: struct A { template […]

static_assert dependente do parâmetro de modelo não-tipo (comportamento diferente no gcc e clang)

template struct Hitchhiker { static_assert(sizeof(answer) != sizeof(answer), “Invalid answer”); }; template struct Hitchhiker {}; Ao tentar desativar a instanciação geral de modelo com static_assert , descobri que o código acima no clang gera o erro assert, mesmo quando o modelo não é instanciado, enquanto o gcc gera o erro assert apenas ao instanciar o Hitchhiker […]

Especialização parcial do modelo de function C ++?

Eu sei que o código abaixo é uma especialização parcial de uma class: template class MyClass { … }; // partial specialization: both template parameters have same type template class MyClass { … }; Também sei que o C ++ não permite a especialização parcial do modelo de function (somente full é permitido). Mas o […]

Restrições de Modelo C ++

Em C #, podemos definir um tipo genérico que impõe restrições aos tipos que podem ser usados ​​como o parâmetro genérico. O exemplo a seguir ilustra o uso de restrições genéricas: interface IFoo { } class Foo where T : IFoo { } class Bar : IFoo { } class Simpson { } class Program […]

Demora muito tempo ao usar o pacote “template” para gerar uma página web dinâmica para o cliente em golang

É tão lento ao usar o pacote de template para gerar uma página da web dinâmica para o cliente. Teste de código como abaixo, golang 1.4.1 http.Handle(“/js/”, (http.FileServer(http.Dir(webpath)))) http.Handle(“/css/”, (http.FileServer(http.Dir(webpath)))) http.Handle(“/img/”, (http.FileServer(http.Dir(webpath)))) http.HandleFunc(“/test”, TestHandler) func TestHandler(w http.ResponseWriter, r *http.Request) { Log.Info(“Entering TestHandler …”) r.ParseForm() filename := NiConfig.webpath + “/test.html” t, err := template.ParseFiles(filename) if err […]

Inicialização de membros estáticos C ++ (modelo divertido dentro)

Para boot de membro estático eu uso uma estrutura auxiliar aninhada, que funciona bem para classs sem modelo. No entanto, se a class envolvente for parametrizada por um modelo, a class de boot aninhada não será instanciada, se o object auxiliar não for acessado no código principal. Para ilustração, um exemplo simplificado (no meu caso, […]

Como funciona essa function de modelo “tamanho de matriz”?

Duplicatas possíveis: Alguém pode explicar esse código de modelo que me dá o tamanho de uma matriz? Argumentos mágicos em modelos de function … Alguém pode explicar como esse código funciona? Eu sei que o objective deste código é obter o tamanho de um array, mas não sei como esse código funciona: template int GetArrLength(T(&)[size]){return […]