Resultados da pesquisa a pedido "language-lawyer"

2 a resposta

É possível alias um enumerador de classe enum?

Dada uma classe enum C ++ 11, aninhada em vários namespaces de nomes longos e feios: namespace long_and_ugly { enum class colour { red, green, blue }; }Podem ser feitos aliases dos valores de enumeração? Com o clang ++ 3.5, é possível fazer ...

3 a resposta

Uma atribuição de vetor invalida a `reserva`?

Suponha que eu escreva std::vector<T> littleVector(1); std::vector<T> bigVector; bigVector.reserve(100); bigVector = littleVector;O padrão diz quebigVector ainda terá 100 elementos reservados? Ou eu experimentaria a realocação de memória ...

2 a resposta

O padrão C ++ exige que as funções de ligação C sejam `noexcept`?

Não consigo encontrar nada no padrão que force as funções declaradas comextern "C" ser estarnoexcept, implícita ou explicitamente. No entanto, deve ficar claro que as convenções de chamada C não podem suportar exceções ... ou é? O padrão ...

1 a resposta

A especialização explícita no escopo que não é de namespace não é compilada no GCC

O código a seguir é compilado no Clang, mas não no GCC: template<typename T> struct Widget { template<typename U> void foo(U) { } template<> void foo(int*) { } };De acordo com o padrão C ++ ([temp.expl.spec], parágrafo 2): Uma especialização ...

1 a resposta

Em um construtor de classe abstrata, por que preciso chamar um construtor de uma base virtual que nunca será chamada?

Enfrento a bem conhecida situação "temida" do diamante: A / \ B1 B2 \ / C | DA classeA tem, diz o construtorA::A(int i). Também quero proibir uma instanciação padrão de umA então eu declaro o construtor padrão deA Comoprivate. As classesB1 eB2 ...

2 a resposta

Acesso ao construtor protegido da classe base

Uma classe derivada pode chamar um construtor de classe base protegido em seuctor-initializer, mas apenas para seu próprio subobjeto de classe base e não em outro lugar: class Base { protected: Base() {} }; class Derived : Base { Base b; ...

3 a resposta

Objeto de enumeração definido como um valor diferente de qualquer uma de suas respectivas constantes de enumeração

Qual é o valor de um objeto de enumeração se estiver definido como um valor diferente de qualquer uma de suas respectivas constantes de enumeração? Considere o seguinte código: enum foobar{ FOO = 1, BAR = 5 }; enum foobar baz = 5; enum foobar ...

3 a resposta

Qual é a definição de "operação aritmética" em C99?

Em C99, o termooperação aritmética aparece 16 vezes, mas não vejo uma definição para ele. O termooperador aritmético aparece apenas duas vezes no texto (novamente sem definição), mas aparece no Índice: operadores aritméticos aditivo, 6.5.6, ...

3 a resposta

Onde está a definição de `qualificadores de cv de nível superior 'no Padrão C ++ 11?

Noo rascunho da norma C ++ 11: N3337 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf]Encontrei várias referências atop-level cv-qualifiers, mas sem definição.

2 a resposta

Quando a chamada de uma função de membro em uma instância nula resulta em um comportamento indefinido?

Considere o seguinte código: #include <iostream> struct foo { // (a): void bar() { std::cout << "gman was here" << std::endl; } // (b): void baz() { x = 5; } int x; }; int main() { foo* f = 0; f->bar(); // (a) f->baz(); // (b) }Nós esperamos(b) ...