Estou curioso - a programação genérica (GP) é muito usada na indústria?
É realmente muito dependente do contexto da equipe e do projeto.
Por exemplo, em videogames, geralmente o código é o "mais simples" possível (e às vezes muito simples), mas em grandes arquiteturas. Isso ocorre porque os desenvolvedores de jogos têm muitos problemas para corrigir e não querem se preocupar com a meta programação (que é uma linguagem muito abstrata e difícil de entender dentro do C ++).
Ao mesmo tempo, o uso básico de modelos é comum, mesmo nessas lojas, e você pode ver algumas otimizações baseadas em modelos em algumas funções muito específicas de alguns mecanismos.
Mas no game dev, a maioria das pessoas evita qualquer metaprogramação.
Agora, por outro lado, algumas aplicações de processamento realmente complexas ou pesadas, que não são comuns, requerem algum tipo de metaprogramação pesada devido aos requisitos de desempenho e flexibilidade (em tempo de compilação) que não são comuns. Estou trabalhando em um agora.
Não é comum, mas existe, e alguns domínios de nicho (em alguns contextos científicos ou integrados de processamento de números) exigem que as pessoas saibam muito sobre metaprogramação ou que desejam aprender.
No meio, a maioria das pessoas usa apenas a metaprogramação como "cliente", não como "designer". A maioria dos códigos de metaprogramação está agrupada em bibliotecas porque as bibliotecas são ferramentas para código e o que é melhor do que uma biblioteca que pode se adaptar aos tipos personalizados com os quais você trabalha até agora?
O Boost (http://boost.org) é um conjunto de bibliotecas, algumas sendo feitas com muita magia negra de metaprogramação e são usadas em muitas lojas de C ++ como "STL ++", uma extensão da STL (e é). Nem todas as lojas o usam por vários motivos, como a compatibilidade do compilador (algumas bibliotecas de impulso podem fazer com que o compilador implore perdão por toda vez que ele machucou seu sentimento ...) e com mais frequência porque alguns desenvolvedores não gostam de não entender como uma ferramenta funciona por dentro (tente entender o Boost.Spirit ...)
Quaisquer que sejam as empresas em que você trabalhará, algumas usarão esse paradigma, outras menos ou nada, ou mesmo as proibirão.
Não há consenso, porque ninguém tem as mesmas necessidades, contexto ou equipe.
Mas ainda assim, obviamente, é usado. Talvez pergunte quem usa o impulso em sua lista de e-mails para obter mais exemplos do mundo real?