Perguntas com a marcação «c++14»

166
Captura Lambda como referência const?

É possível capturar por referência const em uma expressão lambda? Quero que a tarefa marcada abaixo falhe, por exemplo: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string strings[] = { "hello",...

149
Como o `void_t` funciona

Eu assisti a palestra de Walter Brown no Cppcon14 sobre programação de modelos modernos ( Parte I , Parte II ), onde ele apresentou sua void_ttécnica SFINAE. Exemplo: Dado um modelo de variável simples que avalia voidse todos os argumentos do modelo estão bem formados: template< class ......

140
O #pragma já fez parte do padrão C ++ 11?

Tradicionalmente, a maneira padrão e portátil de evitar múltiplas inclusões de cabeçalho no C ++ era / é usar o #ifndef - #define - #endifesquema de diretivas de pré-compilador, também chamado de esquema de guarda de macro (veja o trecho de código abaixo). #ifndef MY_HEADER_HPP #define...

114
Como o lambda genérico funciona em C ++ 14?

Como o lambda genérico funciona ( autopalavra-chave como tipo de argumento) no padrão C ++ 14? É baseado em modelos C ++ onde, para cada tipo de argumento diferente, o compilador gera uma nova função com o mesmo corpo, mas com tipos substituídos (polimorfismo em tempo de compilação) ou é mais...

106
O que são comparadores transparentes?

No C ++ 14, os contêineres associativos parecem ter mudado do C ++ 11 - [associative.reqmts] / 13 diz: Os modelos de função de membro find, count, lower_bound, upper_bound, e equal_rangenão devem participar de resolução de sobrecarga, a menos que o tipo Compare::is_transparentexiste. Qual é o...

103
O C ++ 14 está adicionando novas palavras-chave ao C ++?

O Comitê de Padrões C ++ tende a se esquivar de adicionar novas palavras-chave à linguagem, mas com C ++ 11 esse não era o caso. Alguns exemplos: constexpr decltype thread_local auto // New usage noexcept nullptr static_assert alignof alignas Há alguma nova palavra-chave introduzida no C ++...

97
É seguro vincular objetos C ++ 17, C ++ 14 e C ++ 11

Suponha que eu tenha três objetos compilados, todos produzidos pelo mesmo compilador / versão : A foi compilado com o padrão C ++ 11 B foi compilado com o padrão C ++ 14 C foi compilado com o padrão C ++ 17 Para simplificar, vamos supor que todos os cabeçalhos foram escritos em C ++ 11,...

90
O que é const void?

A descrição dos std::is_voidestados que: Fornece o valor da constante do membro igual a true, se T for do tipo void, const void, volatile void ou const volatile void. Então o que poderia ser const void, ou um volatile void? Esta resposta afirma que o const voidtipo de retorno seria...

89
Confusão de inicialização padrão, valor e zero

Estou muito confuso sobre a inicialização de valor e padrão e zero. e especialmente quando eles são iniciados para os diferentes padrões C ++ 03 e C ++ 11 (e C ++ 14 ). Estou citando e tentando estender uma resposta realmente boa Valor- / Padrão- / Zero- Init C ++ 98 e C ++ 03 aqui para torná-lo...

89
Por que um lambda tem o tamanho de 1 byte?

Estou trabalhando com a memória de alguns lambdas em C ++, mas estou um pouco confuso com o tamanho deles. Aqui está meu código de teste: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout...