c++14

¿Cuál es la razón detrás del comportamiento decltype?

Como entendí en C++11 decltype(expression) se usa para deducir exactamente el mismo tipo de la expresión dada. Pero cuando la ... o decltype((x + x)) el tipo deducido es T, pero no T&. Esto es aún más confuso. No se si este comportamiento es estándar.

¿Por qué la inicialización de la matriz de pares todavía necesita llaves dobles en C++14?

Con el estándar C++14, la inicialización de un std::array puede ir con llaves simples (ver http://en.cppreference.com/w/cpp/ ... icialización de un buen array viejo funciona con llaves simples std::pair<int, int> c[3] {{1, 11}, {2, 22}, {3, 33}};

Resolución de sobrecarga entre objeto, referencia rvalue, referencia const

Dadas las tres funciones, esta llamada es ambigua. int f( int ); int f( int && ); int f( int const & ); int q = ... o T const & y T &&, y copiar explícitamente. Pero ni siquiera estoy seguro de que eso sea estrictamente estándar.

¿Por qué tanto los arrays de tamaño runtime como std:: dynarray en C++14?

Draft C++14 incluye matrices de tamaño runtime y el contenedor std::dynarray. Por lo que puedo decir, la única diferencia re ... terística del lenguaje central de C++14 que se describe en N3639, no a los arrays tradicionales de C o VLAs ni nada en C++11.

¿Cuál es la mejor manera de generar bools aleatorios?

Necesito generar valores booleanos aleatorios en una ruta crítica de rendimiento. El código que escribí para esto es std::r ... as soluciones más 1. std::bernoulli_distribution 2. bool randbool = rand() & 1; Recuerde llamar srand() al principio.

C++11: ¿Correcta inicialización de std:: array?

Si inicializo un std:: array de la siguiente manera, el compilador me da una advertencia sobre llaves faltantes std::array& ... int [4]}' [-Wmissing-braces] ¿Es esto solo un error en mi versión de gcc, o se hace intencionalmente? Si es así, ¿por qué?

Ventajas de usar literal definido por el usuario para cadenas en lugar de literal de cadena

El tema de cadenas en la Documentación SO solía decir, en la sección de Observaciones: Desde C++14, en lugar de usar "fo ... string str = "Hello "s + "World!"s; ¿Hay algún beneficio de usar std::string literales en lugar de const char[] literales?

Compilar c++14-código con g++

Estoy usando g++ 4.8.4 en Ubuntu 14.04 LTS. Al intentar compilar con '- std = c++14', obtengo este error: g++: error unreco ... e comandos incorrecta? Usé "sudo apt-get install g++" que debería recuperar automáticamente la última versión, ¿es correcto?

Obtenga la versión de Apple clang y la versión de LLVM correspondiente

Quiero entender qué versión de clang Apple instalado en mi macbook, para ver con c++11 y/o c++14 características están dispon ... nde se puede comprobar las características de c++ disponibles en la versión de clang http://clang.llvm.org/cxx_status.html

Funciones lambda recursivas en C++14

Hay un 'truco' a menudo repetido para escribir funciones lambda recursivas en C++11 que es el siguiente: std::function<i ... potética donde las expresiones lambda recursivas serían realmente convenientes, ¿hay alguna manera de abordar esos problemas?

¿Por qué usar std:: bind sobre lambdas en C++14?

Antes de C++11 usé boost::bind o boost::lambda mucho. La parte bind se convirtió en la biblioteca estándar (std::bind) la otr ... ) ¿Hay algún otro caso de uso válido para std::bind superar la alternativa lambdas de C++ o es std::bind superfluo con C++14?

Ventajas de usar std:: hacer único sobre el nuevo operador [duplicar]

Esta pregunta ya tiene una respuesta aquí: Diferencias entre std::make_unique y std::unique_ptr ... to. ¿Previene cualquier tipo de pérdida de memoria que pueda ocurrir? ¿Es más rápido hacer un std::make_unique que usar new?

¿Por qué los métodos std:: shuffle están en desuso en C++14?

Según el cppreference.com sitio de referencia en std:: shufle , el siguiente método está siendo obsoleto en c++14: templa ... unción diferente tenga un parámetro predeterminado. ¿Cuál es la razón detrás de esto? ¿Se añadió algún tipo de alternativa?

¿Por qué se pueden modificar los miembros de const en un constructor?

Tengo curiosidad por saber por qué los miembros de const pueden ser modificados en el constructor. ¿Hay alguna regla estánd ... *b = new Bar(2); // Problem: Bar::b is modified to 2 // was expecting it to be an error ¿Alguna idea?

Constructor predeterminado eliminado. Los objetos todavía se pueden crear sometimes a veces

El ingenuo, optimista y oh.. así que visión equivocada de la sintaxis de inicialización uniforme de c++11 Pensé que desde C+ ... ROR: use of deleted function `foo::foo()` /* Fb */ foo f{3}; // ERROR: no matching function to call `foo::foo(init list)`

Captura de variables perfectamente reenviadas en lambda

template<typename T> void doSomething(T&& mStuff) { auto lambda([&mStuff]{ doStuff(std::forward<T> ... ara variables perfectamente reenviadas? EDIT: ¿Qué pasa si la variable perfectamente reenviada es un paquete de parámetros?

¿Cuál es el peso de los literales binarios en C++14?

He intentado buscar pero no he sido capaz de encontrar mucho acerca de binario literales y peso. ¿Son los literales binarios ... , y enmascararlo con literales binarios parecía una buena manera de ir... pero sólo si hay algún tipo de garantía sobre peso.

Conversión de std:: unique ptr a std:: unique ptr

Digamos que tengo funciones de fábrica que tratan con clases base y derivadas: #include <memory> using namespace std ... to una no conformidad en mis compiladores (gcc 4.8.1 y VS2012)? El diseño previsto de unique_ptr? ¿Un defecto en el estándar?

¿Hay una manera de iterar sobre a lo sumo N elementos usando range-based for loop?

Me gustaría saber si hay una buena manera de iterar sobre a lo sumo N elementos en un contenedor utilizando el rango basado e ... con una condición). Básicamente, estoy buscando algo que corresponda a este código Python: for i in arr[:N]: print(i)

En std:: exchange, ¿por qué el segundo parámetro de plantilla está predeterminado?

El estándar C++14 especifica la siguiente declaración para std::exchange: template <class T, class U = T> T std::exch ... duciría a un resultado diferente que: template <class T, class U> T std::exchange(T& obj, U&& new_value);