Resultados da pesquisa a pedido "c++14"

1 a resposta

como esse lambda com uma lista de captura vazia pode se referir ao nome do escopo de alcance?

No padrão C ++ 14, § 5.1.2 / 12, mostra um exemplo de expressão lambda que aparentemente parece capaz de se referir à variável de um escopo de alcancex, Apesar de: a lista de capturas está vazia, ou seja, nenhum padrão de capturao comentário diz ...

1 a resposta

Como tornar o std :: make_unique um amigo da minha classe

Eu quero declararstd::make_unique funcione como amigo da minha turma. O motivo é que eu quero declarar meu construtorprotected e forneça um método alternativo de criar o objeto usandounique_ptr. Aqui está um código de exemplo: #include <memory> ...

3 a resposta

Conversão de tipo no argumento de não tipo de modelo sem constexpr

Considere o seguinte código: struct A { constexpr operator int() { return 42; } }; template <int> void foo() {} void bar(A a) { foo<a>(); } int main() { foo<A{}>(); const int i = 42; foo<i>(); // (1) A a{}; static_assert(i == a, ""); bar(a); ...

3 a resposta

Construtor padrão excluído. Objetos ainda podem ser criados ... às vezes

A visão ingênua, otimista e oh .. tão errada da sintaxe de inicialização uniforme do c ++ 11Eu pensei que, desde que os objetos do tipo C ++ 11 definidos pelo usuário devessem ser construídos com o novo{...} sintaxe em vez da antiga(...) sintaxe ...

2 a resposta

trivialmente construtível std :: optional e std :: variant

É permitido projetarstd::optional (atualmentestd::experimental::optional) de tal maneira que, para o tipo construtível trivialmente padrãoT correspondentestd::optional< T > também é trivialmente padrão construtível? A mesma pergunta que ...

1 a resposta

Sobrecarga de modelo C ++ com enable_if: comportamento diferente com g ++ e clang

Durante a resolução de uma sobrecarga de uma função de membro modelada de uma classe base, observei um comportamento diferente entre g ++ (5.2.1-23) e clang (3.8.0), com-std=c++14. #include <iostream> #include <type_traits> struct Base { ...

2 a resposta

Até onde eu sei, a função abaixo não é constexpr, mas o código é compilado em clang e g ++. o que estou perdendo?

Eu peguei este exemplo do §5.19 / 2 no N4140: constexpr int incr(int &n) { return ++n; }Tanto quanto posso dizer, este não é umconstexpr função. Mas o trecho é compilado no clang e no g ++. Vejoexemplo ao vivo ...

4 a resposta

Por que non-const std :: array :: operator [] não constexpr?

Estou tentando preencher uma matriz 2D em tempo de compilação com uma determinada função. Aqui está o meu código: template<int H, int W> struct Table { int data[H][W]; //std::array<std::array<int, H>, W> data; // This does not work ...

1 a resposta

Autoinicialização de uma variável estática constexpr, está bem formada?

Dada a seguinte declaração no espaço para nome global: constexpr int x = x;Isso é bem formado? O rascunho da seção padrão do C ++ 143.6.2 [basic.start.init] diz: Variáveis com duração de armazenamento estático (3.7.1) ou com duração ...

2 a resposta

Jogue na função constexpr

O seguinte trecho de código é compilado no clang ++ 3.7.0, mas é negado pelo g ++ 5.3.1. Ambos têm-std=c++14 opção. Qual compilador está correto? Alguém sabe onde no padrão fala sobre isso? Obrigado. #include <stdexcept> using namespace std; ...