Resultados de la búsqueda a petición "c++14"

2 la respuesta

Uso de auto como retorno y tipo de parámetros en C ++ 14

En la cuarta edición del libro Bjarne Stroustrup (El lenguaje de programación C ++) leemos que: Usando auto, evitamos la redundancia y escribimos nombres largos. Esto es especialmente importante en la programación genérica, donde el tipo exacto ...

1 la respuesta

¿Ahora se permiten redefiniciones de miembros de datos estáticos constexpr? (pero no const en línea)?

Lo siguiente no se compila bajo gcc y clang en c ++ 14, pero tiene éxito con c ++ 1z: struct Cls { static constexpr int N = 0; }; constexpr int Cls::N; constexpr int Cls::N;El error de C ++ 14 es predecible:redefinition of ‘constexpr const ...

1 la respuesta

Evitar movimientos adicionales en make_unique / make_shared / emplace / etc para estructuras que usan inicialización agregada

std::make_unique() (y funciones similares) tienen un pocoproblema [http://coliru.stacked-crooked.com/a/7d4063069bcca194]: #include <cstdio> #include <memory> using namespace std; struct S { S() { printf("ctor\n"); } ~S() { printf("dtor\n"); } ...

1 la respuesta

Resolución de sobrecarga entre miembros de plantilla en clases base y derivadas

El compilador de Microsoft (Visual Studio 2017 15.2) rechaza el siguiente código: #include <type_traits> struct B { template<int n, std::enable_if_t<n == 0, int> = 0> void f() { } }; struct D : B { using B::f; template<int n, std::enable_if_t<n ...

5 la respuesta

¿Plantillas variables y declaración de cambio?

Tengo la siguiente función que puede tomar N argumentos de diferentes tipos y reenviarlos a N funciones con plantilla en cada tipo individual, de esta manera (ejemplo con dos argumentos): template <typename T1, typename T2> bool func(int& ...

2 la respuesta

Constante integral pasada por valor, tratada como constexpr?

Aunque he usado código como este antes, y está claro que el compilador tiene suficiente información para funcionar, realmente no entiendo por qué esto compila: template <class T, class I> auto foo(const T& t, I i) { return std::get<i>(t); } int ...

3 la respuesta

¿Es inicialización directa o inicialización de copia?

La inicialización de objetos (instancias de clases o estructuras) en C ++ se puede hacer de varias maneras. Algunas sintaxis evocan uninicialización directa de su objeto, otras sintaxis conducen a unacopia-inicialización. Concopia-elisión ...

3 la respuesta

¿Es seguro vincular objetos C ++ 17, C ++ 14 y C ++ 11?

Supongamos que tengo tres objetos compilados, todos producidos pormismo compilador / versión: A fue compilado con el estándar C ++ 11B fue compilado con el estándar C ++ 14C fue compilado con el estándar C ++ 17Para simplificar, supongamos que ...

2 la respuesta

Aplicando una función a cada elemento de una tupla

Dado unstd::tuplesimilar a un objeto (es decir, con definidotuple_size yget semántica) y un objeto functor unarioftor, Quiero poder llamarftor en cada elemento de latuple-como objeto. Si ignoro el valor de retorno, soy consciente del truco de la ...

1 la respuesta

¿Es legal verificar si la dirección de un subobjeto se encuentra dentro de los límites de un objeto que contiene

2 preguntas: ¿El siguiente código está bien formado con un comportamiento definido? ¿Hay alguna implementación posible de c ++ en la que se pueda afirmar? Código (c ++ 11 y superior): #include <cassert> #include <utility> #include <ciso646> ...