Preguntas etiquetadas con c++14

C ++ 14 es el nombre del estándar C ++, aprobado en 2014. Se basa en el estándar C ++ 11 anterior, mejorando el lenguaje central y la biblioteca estándar y agregando algunas características.


6
error :: make_unique no es miembro de 'std'
Estoy tratando de compilar el siguiente programa de grupo de subprocesos publicado en la revisión del código para probarlo. /codereview/55100/platform-independant-thread-pool-v4 Pero estoy recibiendo los errores threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise)); …

2
¿Cuál es el propósito de usar una unión con un solo miembro?
Cuando estaba leyendo el código fuente de Seastar , noté que hay una estructura de unión llamada tx_sideque tiene un solo miembro. ¿Es esto un truco para lidiar con cierto problema? FYI, pego la tx_sideestructura a continuación: union tx_side { tx_side() {} ~tx_side() {} void init() { new (&a) aa; …
89 c++  c++14  unions 

5
¿Por qué una lambda tiene un tamaño de 1 byte?
Estoy trabajando con la memoria de algunas lambdas en C ++, pero estoy un poco desconcertado por su tamaño. Aquí está mi código de prueba: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout …
89 c++  c++11  lambda  c++14  sizeof 

3
¿Qué es const void?
La descripción de std::is_voidestablece que: Proporciona el valor de la constante del miembro que es igual a verdadero, si T es del tipo void, const void, volatile void o const volatile void. Entonces, ¿qué podría ser const void, o un volatile void? Esta respuesta indica que el const voidtipo de …
89 c++  c++11  c++14 

3
Desorden de inicialización por defecto, valor y cero
Estoy muy confundido sobre el valor, el valor predeterminado y la inicialización cero. y especialmente cuando entran en juego para los diferentes estándares C ++ 03 y C ++ 11 (y C ++ 14 ). Estoy citando y tratando de extender una respuesta realmente buena Value- / Default- / Zero- …
88 c++  c++11  c++14  c++03  c++98 


1
¿Cómo emular EBO cuando se usa almacenamiento sin procesar?
Tengo un componente que uso al implementar tipos genéricos de bajo nivel que almacenan un objeto de tipo arbitrario (puede o no ser un tipo de clase) que puede estar vacío para aprovechar la optimización de base vacía : template <typename T, unsigned Tag = 0, typename = void> class …
79 c++  c++14 



3
Los valores de cierre de Lambda se pueden pasar como parámetros de referencia de valor
Descubrí que los lvaluecierres lambda siempre se pueden pasar como rvalueparámetros de función. Vea la siguiente demostración simple. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works // Case 2: …

4
Enum. Continua C ++ 11
¿Hay alguna manera de verificar en C ++ 11 si una enumeración es continua ? Es totalmente válido dar valores enum que no lo son. ¿Hay tal vez una característica como un rasgo de tipo en C ++ 14, C ++ 17 o tal vez C ++ 20 para verificar …
17 c++  c++11  c++14  c++17  c++20 

3
Ejecutar la función dentro de la plantilla de función solo para aquellos tipos que tienen la función definida
Tengo una plantilla de función que toma muchos tipos diferentes como entrada. De esos tipos, solo uno de ellos tiene una getInt()función. Por lo tanto, quiero que el código ejecute la función solo para ese tipo. Por favor sugiera una solución. Gracias #include <type_traits> #include <typeinfo> class X { public: …


1
¿Se puede pasar una plantilla variable como argumento de plantilla?
El siguiente ejemplo sin sentido no se compila, pero ¿hay alguna otra forma de pasar una plantilla variable como argumento de plantilla? template<typename T> constexpr auto zero = T{0}; template<typename T, template<typename> auto VariableTemplate> constexpr auto add_one() { return VariableTemplate<T> + T{1}; } int main() { return add_one<int, zero>(); } …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.