c++14

¿Cómo crear una función std:: a partir de una expresión lambda que captura movimientos?

Estoy intentando crear un std::function a partir de una expresión lambda que captura movimientos. Tenga en cuenta que puedo c ... lang: Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) Target: x86_64-apple-darwin13.3.0 Thread model: posix

¿La deducción de tipo de retorno automático fuerza a varias funciones a tener el mismo tipo de retorno?

Considere el siguiente fragmento: struct A { auto foo(), bar(); }; auto A::foo() { return 1; } auto A::bar() { return 'a ... ipo de retorno automático fuerza a múltiples funciones, declaradas en una sola instrucción, a tener el mismo tipo de retorno?

std::swap vs std::exchange vs intercambio operador

Una implementación de std::swap podría verse así: template <class T> void swap (T& a, T& b) { T c(std::move ... do de la otra, en lugar de sustituirse entre sí. ¿Por qué es necesario tener ¿tres formas diferentes de intercambiar objetos?

Valor de C++14-inicialización con constructor eliminado

Tengo un malentendido: Vamos a marcar el constructor predeterminado de la estructura A como eliminado: struct A { A() = ... nstructor predeterminado para proporcionar valor inicial para el nuevo objeto. O es la inicialización agregada? ¡Gracias!

Conteo de bits: preprocesador magic vs C++moderno

Supongamos que quiero crear una tabla de búsqueda de conteo de bits construida en tiempo de compilación para enteros de 64 bi ... , B16(2) unsigned int lookup[65536] = { COUNT_BITS }; ¿Existe una forma moderna (C++11/14) de obtener el mismo resultado?

¿Por qué la deducción de tipo de devolución automática funciona con tipos no completamente definidos?

Considere lo siguiente: template<typename Der> struct Base { // NOTE: if I replace the decltype(...) below with a ... alguna manera "retrasa" la instanciación? ¿O usar un contexto diferente que una expresión de tipo de retorno escrita a mano?

¿Cuál es la diferencia entre auto y decltype (auto) al regresar de una función?

Rara vez veo decltype(auto) pero cuando lo hago me confunde porque parece hacer lo mismo que auto al regresar de una función. auto g() { return expr; } decltype(auto) g() { return expr; } ¿Cuál es la diferencia entre estas dos sintaxis?

Generar una secuencia de ceros en tiempo de compilación

Tengo el siguiente problema: template< size_t... N_i > class A { public: // ... void foo() { bar ... ) muchos argumentos que son todos ceros, por ejemplo, bar(0,0,0) en el caso sizeof...(N_i) == 3. ¿Cómo se puede aplicar esto?

¿Existe una definición estándar para cplusplus en c++14?

Estoy buscando configurar algunas cosas del preprocesador, y me gustaría un número más exacto de lo que __cplusplus en C++14 debería definirse como. Hay exigido por la norma?

std::ignore para ignorar la variable no utilizada

¿Es un buen enfoque usar std::ignore para ignorar variables no utilizadas? Supongamos que tengo una función como esta: vo ... e // Also it is required to call only once static int i = Thread_UnSafe_func_returnSomething(); std::ignore = i; }

¿Es un comportamiento definido hacer referencia a un miembro temprano de una expresión de miembro posterior durante la inicialización agregada?

Considere lo siguiente: struct mystruct { int i; int j; }; int main(int argc, char* argv[]) { mystruct foo{45, ... puedo obtener el comportamiento inicial (si era un comportamiento bien definido) con un constructor definido por el usuario?

Llamar a la función miembro` this ' desde lambda - clang genérico vs gcc

Problema: pasar un lambda genérico (a una función de plantilla) que captura this y llama a una función miembro de this sin ... una lambda genérica? ¿Por qué no es necesario this-> si no se pasa la lambda a call? ¿Quién no cumple con las normas?

STL forma de acceder a más elementos al mismo tiempo en un bucle sobre un contenedor

¿Es posible reescribir este bucle raw: vector<double> v { ... }; for (size_t i = 1; i<v.size(); ++i) { v[i]*=v[ ... anera más STLish? ¿Hay otras formas que sean iguales o mejores (tanto en estilo como en interpretación) que las anteriores?

¿Por qué utilizar un valor perfectamente reenviado (un funtor)?

C++11 (y C++14) introduce construcciones de lenguaje adicionales y mejoras que se dirigen a la programación genérica. Estos i ... f en apply_impl, es decir, por qué std::forward<F>(f)(std::get...? ¿Por qué no aplicar la función como f(std::get...?

¿Por qué se cambió 1 <31 para que se definiera como implementación en C++14?

En todas las versiones de C y C++ anteriores a 2014, escribiendo 1 << (CHAR_BIT * sizeof(int) - 1) Causó un comporta ... no portable para escribir 1 << 31 (en un sistema con int de 32 bits). Entonces, ¿por qué se hizo este cambio en C++14?

¿Qué partes de la Biblioteca estándar C++14 podrían ser y qué partes se convertirán en constexpr?

Con el nuevo reglas C++14 constexpr relajadas, la programación en tiempo de compilación se vuelve mucho más expresiva. Me pre ... <cmath> y <algorithm> no están marcadas constexpr? ¿hay razones de compatibilidad hacia atrás para no hacerlo?

Obtener puntero de función a lambda?

Quiero ser capaz de obtener un puntero de función a una lambda en C++. Puedo hacer: int (*c)(int) = [](int i) { return i; ... acked-crooked.com/a/2cbd62c8179dc61b que contiene los ejemplos anteriores. Este comportamiento es el mismo en C++11 y C++14.

variable "auto" utilizada en lambda en su propio inicializador

Hoy encontré este código #include <cstdio> auto terminal = [](auto term) { ... es declarado auto. Estaba esperando el error que clang dio, pero ¿es en realidad mal formado? ¿O debe aceptarse el código?

¿Por qué no se puede deducir el tipo de retorno de main?

Como era de esperar, lo siguiente falla en C++11 porque ese lenguaje no tiene deducción de tipo de retorno para las funciones ... main? ¿O ambos compiladores no cumplen? (Por si sirve de algo, nunca en realidad hacer esto. int main() para la victoria...)

C++ (14) y gestión manual de memoria

Acabo de recibir un comentario, me gusta El problema es la gestión manual de la memoria. delete no tiene lugar en el código de usuario, y a partir de C++14, tampoco tiene new ¿Puede alguien explicarme por qué?