Articles of c ++ c ++ 11

Por que o lambdas pode ser melhor otimizado pelo compilador do que funções simples?

Em seu livro The C++ Standard Library (Second Edition) Nicolai Josuttis afirma que lambdas podem ser melhor otimizados pelo compilador do que funções simples. Além disso, os compiladores de C ++ otimizam os lambdas melhor do que as funções comuns. (Página 213) Por que é que? Eu pensei que quando se trata de inlining não […]

O que exatamente é o “contexto imediato” mencionado no Padrão C ++ 11 para o qual a SFINAE se aplica?

O parágrafo 14.8.2 / 8 da norma C ++ 11 especifica as condições sob as quais uma falha de substituição deve ou não resultar em um erro de compilation “difícil” (fazendo com que a compilation falhe) ou em um erro “soft” que apenas faça com que o compilador descarte um modelo de um conjunto de […]

O que é inheritance de construtor?

Em C ++ 11, o que significa herdar o construtor? Se é o que eu acho que é (o construtor de class base é trazido no escopo da class derivada), quais são suas implicações no meu código? Quais são as aplicações de tal recurso?

Devo usar std :: function ou um ponteiro de function em C ++?

Ao implementar uma function de retorno de chamada em C ++, ainda devo usar o ponteiro de function de estilo C: void (*callbackFunc)(int); Ou devo fazer uso de std :: function: std::function callbackFunc;

std :: function vs template

Graças ao C ++ 11, recebemos a família std::function dos wrappers functor. Infelizmente, continuo ouvindo apenas coisas ruins sobre essas novas adições. O mais popular é que eles são terrivelmente lentos. Eu testei e eles realmente sugam em comparação com modelos. #include #include #include #include template float calc1(F f) { return -1.0f * f(3.3f) + […]

tipo de retorno à direita usando decltype com uma function de modelo variadic

Eu quero escrever um sumdor simples (para risos) que adiciona todos os argumentos e retorna uma sum com o tipo apropriado. Atualmente, tenho isto: #include using namespace std; template T sum(const T& in) { return in; } template auto sum(const T& t, const P&… p) -> decltype(t + sum(p…)) { return t + sum(p…); } […]

const vs constexpr em variables

Existe uma diferença entre as seguintes definições? const double PI = 3.141592653589793; constexpr double PI = 3.141592653589793; Se não, qual estilo é preferido no C ++ 11?

Quais são os namespaces inline para?

C ++ 11 permite inline namespace s, todos os membros dos quais também são automaticamente no namespace envolvente. Não consigo pensar em nenhuma aplicação útil disso – alguém pode dar um exemplo breve e sucinto de uma situação em que um inline namespace é necessário e onde é a solução mais idiomática? (Além disso, não […]

Hash da string de tempo de compilation

Eu li em alguns lugares diferentes que usando novas literais de C ++ 11, é possível calcular o hash de uma string em tempo de compilation. No entanto, ninguém parece estar pronto para sair e dizer que será possível ou como seria feito. Isso é possível? Como seria o operador? Estou particularmente interessado em casos […]

Diferenças entre unique_ptr e shared_ptr

Duplicatas possíveis: pimpl: shared_ptr ou unique_ptr pointers inteligentes (boost) explicados Alguém poderia explicar as diferenças entre shared_ptr e unique_ptr?