Pergunta

Na atual C ++ 0x projecto tenho notado que introduziu algumas novas palavras-chave explícitas para destacar esperado comportamentos (grande jogada!).

Exemplos: incumprimento / Suprimido funções ( = default e = excluir ), o novo nullptr constante, a explícita palavra-chave utilizável também para os operadores de conversão, ...

Então, eu esperava ver também um = puro sintaxe para funções virtuais puros.

Em vez disso o feio (IMHO, é claro) = 0 coisa ainda existe.

Ok, eu posso usar um #define pura 0 (e às vezes eu faço isso), mas acho que a coerência / consistência deve ser definitivamente uma meta para um padrão. Além disso eu sei que é apenas uma espécie de pedido ultra-pedantes, mas = 0 era de fato um dos minha parte menos favorita do C ++ (eufemismo) ...

As minhas perguntas:

  • Eu sei, o novo padrão é recurso completo, mas ainda é possível pedir esse pequeno acréscimo pedante, mesmo apenas como uma coisa "necessária macro"?
  • Se a resposta for positiva, como? (Qualquer torno membro do comitê?)
  • eu sou apenas um pouco demasiado pedante (ou errado) para fazer esta adição? o que você acha sobre a sintaxe atual de funções virtuais puras?
Foi útil?

Solução

Isso não é uma pequena mudança pedante. Apresentando uma nova palavra-chave é um dos maior alterações que você pode pedir. É algo que eles tentam evitar quase a qualquer custo. Pense em todo o código que usa a palavra "puro", que iria quebrar.

Em geral, sua orientação é adicionar somente as coisas para o idioma que não pôde ser feito antes . Uma palavra-chave pure não permitiria que nada de novo (ao contrário da palavra-chave nullptr, o que permite uma melhor verificação de tipo, por exemplo), por isso esperamos que ele tenha uma prioridade muito baixa. Tenha em mente que tudo o que fazem é basicamente o trabalho de manutenção. O objetivo # 1 é para evitar a quebra da língua (ou código existente que usa-lo). Todos os recursos que são adicionados só são adicionados se isso pode ser feito sem quebrar compatibilidade com versões anteriores.

No entanto, o comitê é mais ou menos um fórum aberto. Navegar em torno de seu website , e você deve ser capaz de encontrar um alguns endereços de e-mail. OU use o newsgroup comp.std.c++.

Eu acredito que suas reuniões são abertas, bem, então você poderia apenas gatecrash a próxima. ;)

Outras dicas

A coisa que você odeia mais sobre C ++ é "= 0;" ???

Você já usado este idioma? Há uma abundância de outras coisas que você poderia ser melhor gastar o seu ódio diante.

<Flame retardant>I ter usado C ++ por mais de 10 anos. Para mim ainda é a linguagem de escolha sempre que eu preciso fazer alguma lifting.</Flame retardant> pesado computacional

Em primeiro lugar, começar a ler comp.std.c++ newsgroup. Este é o local para discussões públicas.

Em segundo lugar, eu diria que só errata será aplicada ao atual C ++ 0x projecto, o comitê realmente está nos estágios finais.

Se você é extremamente Keen, faça a sua proposta no grupo de discussão, com uma muito boa justificação. E esperar que ele seja derrubado. Substancialmente propostas mais úteis (por exemplo, módulos) não fizeram isso.

Adenda:. Se você quiser algo assim para o progresso, você terá que quer se juntar (ANSI tem de) comité, ou encontrar alguém no comitê para empurrar sua proposta

Muito tarde. A chamada para os pedidos terminou um par de anos atrás.

(Houve uma página onde as apresentações foram realizadas, mas não consigo encontrar essa lista mais.)

Além de jalf 's comentário sobre os inconvenientes de adicionar uma palavra-chave (com a qual concordo 100%), você também deve observar que em ciência da computação a frase função pura já tem um significado. Isso significa que, dado os mesmos parâmetros de uma função retorna sempre o mesmo valor e não tem efeitos secundários. Assim, a escolha = pure para indicar uma função virtual que deve ser substituído seria uma escolha ruim de sintaxe.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top