Resultados da pesquisa a pedido "static-assert"

1 a resposta

Podemos usar static_assert para detectar preenchimento em uma estrutura?

Este é um acompanhamento para este outroPergunta, questão [https://stackoverflow.com/q/48147422/3545273] Eu estava tentando estabelecer em tempo de compilação se uma implementação específica havia adicionado preenchimento sem nome dentro de uma ...

2 a resposta

Comparando o parâmetro da função constexpr na condição constexpr-if causa erro

Estou tentando comparar um parâmetro de função dentro de uma instrução constexpr-if. Aqui está um exemplo simples: constexpr bool test_int(const int i) { if constexpr(i == 5) { return true; } else { return false; } }No entanto, quando eu ...

6 a resposta

Como você está static_assert os valores em um pacote de parâmetros de um modelo variável?

Estou criando um modelo variável. Digamos que eu tenho algo parecido com isto: template<typename T, T ... Numbers> class Sequence final { // Unpack parameter pack into a constexpr array constexpr static T count = sizeof...(Numbers); constexpr ...

2 a resposta

Como imprimir o resultado de um cálculo em tempo de compilação em C ++?

Eu escrevi várias funções constexpr e as uso em static_asserts para controlar alguns limites de recursos. Mas eu gostaria de não apenas aplicar o predicado em tempo de compilação, mas também ver os valores reais calculados durante o processo ...

2 a resposta

Como proteger o CRTP contra o fornecimento de superclasse errada? [duplicado]

Esta pergunta já tem uma resposta aqui: Como evitar erros ao usar o CRTP? [/questions/4417782/how-to-avoid-errors-while-using-crtp] 5 respostasNopadrão curiosamente recorrente [http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern], ...

2 a resposta

Por que static_assert no modelo me dá um resultado diferente com expressões equivalentes?

Eu notei um comportamento estranho destatic_assert: #include <iostream> template <typename T, unsigned int D> struct Vec { static_assert(D && 0, "Invalid dimension for vector!"); }; template <typename T> struct Vec<T, 1> {union {T x, r;};}; ...

2 a resposta

estática afirma que o nome do tipo de modelo T NÃO está completo?

Existe uma maneira de static_assert que um tipo T éNãoconcluir nesse ponto em um cabeçalho? A idéia é ter um erro de compilação se alguém adicionar #includes no caminho em lugares que não deveriam estar. relacionados:Como escrever o modelo ...

2 a resposta

Otimização, afirmações e modo de liberação

Considere uma função void f() { assert(condition); ... }No modo de depuração, onde as declarações são ativadas, o compilador é livre para assumircondition é válido, pois o código restante não será executado se não for. No entanto, no modo de ...

1 a resposta

Como restringir o parâmetro do modelo apenas ao ponteiro ou ao iterador de acesso aleatório?

Existe uma maneira de restringir o tipo de parâmetro de uma função de modelo a apenas ponteiros ou iteradores de acesso aleatório? Digamos que estou desenvolvendo uma função de classificação que funcione apenas com contêineres acessíveis ...

4 a resposta

Usando std :: extension em std :: array

Eu tenho uma função de modelo e querostatic_assert esse tipo tem um tamanho de três. Este código ilustra o que estou tentando fazer, mas não funciona: template < typename T > void foo( T& param ) { // This line is the one that I need to figure ...