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

100
Hashing de string de tempo de compilação

Eu li em alguns lugares diferentes que, usando os novos literais de string do C ++ 11, pode ser possível calcular o hash de uma string em tempo de compilação. No entanto, ninguém parece estar pronto para sair e dizer que será possível ou como seria feito. Isso é possível? Qual seria a aparência...

100
Diferença entre std :: result_of e decltype

Tenho alguns problemas para entender a necessidade de std::result_ofem C ++ 0x. Se bem entendi, result_ofé usado para obter o tipo resultante de invocar um objeto de função com certos tipos de parâmetros. Por exemplo: template <typename F, typename Arg> typename

99
Função seqüência-zip para c ++ 11?

Com o novo loop for baseado em intervalo, podemos escrever código como for(auto x: Y) {} Qual IMO é uma grande melhoria de (por exemplo) for(std::vector<int>::iterator x=Y.begin(); x!=Y.end(); ++x) {} Pode ser usado para fazer um loop em dois loops simultâneos, como a zipfunção Pythons ?...

98
Como std :: function é implementado?

De acordo com as fontes que encontrei, uma expressão lambda é essencialmente implementada pelo compilador, criando uma classe com o operador de chamada de função sobrecarregado e as variáveis ​​referenciadas como membros. Isso sugere que o tamanho das expressões lambda varia e, dadas variáveis ​​de...

98
Por que copiamos e depois mudamos?

Eu vi um código em algum lugar no qual alguém decidiu copiar um objeto e, posteriormente, movê-lo para um membro de dados de uma classe. Isso me deixou confuso, pois pensei que o objetivo de mover era evitar a cópia. Aqui está o exemplo: struct S { S(std::string str) : data(std::move(str))...

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,...