Onde e por que colocar as palavras-chave template e typename em C++?
Olá, colegas! Já escrevo em C++ há alguns meses, mas os templates ainda me causam dor de cabeça. Especialmente me confundem as palavras-chave `template` e `typename`. Eu entendo que elas estão de alguma forma relacionadas a nomes dependentes (dependent names), mas na prática sempre recebo erros de compilação.
Aqui está um exemplo concreto que me quebrou. Suponha que eu tenha uma classe template de contêiner e queira escrever uma função que imprima os elementos de um tipo iterador aninhado:
```cpp
#include
#include
template
void printFirst(const T& container) {
T::const_iterator it = container.begin(); // Erro!
std::cout << *it << std::endl;
}
int main() {
std::vector vec = {1, 2, 3};
printFirst(vec);
return 0;
}
```
O compilador (G
No answers yet.
Faça login para deixar uma resposta
Blogs
Monorepositório com Swift: organização de código para iOS e macOS