Estoy tan frustrado en este momento después de varias horas tratando de encontrar dónde se encuentra shared_ptr. Ninguno de los ejemplos que veo muestra el código completo para incluir los encabezados de shared_ptr (y de trabajo). ¡Simplemente indicar std , tr1 y no está ayudando en absoluto! ¡He descargado boosters y todo pero todavía no […]
Estoy obteniendo un error de C ++ con subprocesamiento: terminate called without an active exception Aborted Aquí está el código: #include #include #include #include template class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &operator<<(TYPE &other) { std::unique_lock mtx_lock(mtx); while(buffer.size()>=max_buffer_size) stop_if_full.wait(mtx_lock); buffer.push(std::move(other)); mtx_lock.unlock(); stop_if_empty.notify_one(); return *this; } //POP […]
Las reglas para la generación automática de funciones de movimiento especiales (constructor y operador de asignación) en C ++ 11 especifican que no se puede declarar ningún destructor. La lógica es, presumiblemente, que si necesitas hacer algo especial en la destrucción, un movimiento puede no ser seguro. Sin embargo, para llamadas de destructor adecuadas en […]
Considere la siguiente función en línea: // Inline specifier version #include #include inline int f(const int x); inline int f(const int x) { return 2*x; } int main(int argc, char* argv[]) { return f(std::atoi(argv[1])); } y la versión equivalente constexpr: // Constexpr specifier version #include #include constexpr int f(const int x); constexpr int f(const int […]
A menudo, en SO (y en otros lugares) he visto la afirmación de que las notas y los ejemplos en el Estándar C ++ no son normativos; probablemente yo mismo lo he reclamado algunas veces. Sin embargo, no pude encontrar evidencia de este hecho en la especificación del lenguaje central del Estándar C ++ (en […]
Traté de comstackr este código: #include #include #include int main() { std::vector v{ 1,5,4,2,8,5,3,7,9 }; std::cout << *boost::min_element(v | boost::adaptors::transformed( [](int i) { return -i; })) << std::endl; return 0; } La comstackción falló con el siguiente mensaje de error (después de una nueva instancia de plantilla larga): /usr/local/include/boost/iterator/transform_iterator.hpp:84:26: error: use of deleted function ‘main()::::()’ […]
Supongamos que tengo una función de template : template T produce_5_function() { return T(5); } ¿Cómo puedo pasar esta template completa a otra template ? Si produce_5_function fue un funtor, no habría problema: template struct produce_5_functor { T operator()() const { return T(5); } }; template<templateclass F> struct client_template { int operator()() const { return […]
Recientemente instalé (las últimas versiones de) ‘Eclipse IDE para C / C ++ Developers’ y minGW (4.8.1) para ayudarme a volver a C ++ después de un largo tiempo de distancia. He agregado -std=c++11 a Other flags en C/C++ Build/Settings/Tool Settings/GCC C++ Compiler/Miscellaneous Tengo un pequeño progtwig que utiliza varias funciones de C ++ 11 […]
Considere el siguiente progtwig: extern int x; auto x = 42; int main() { } Clang 3.5 lo acepta ( demostración en vivo ), GCC 4.9 y VS2013 no ( demostración en vivo para el primero ). ¿Quién tiene razón y dónde se especifica el comportamiento correcto en el Estándar C ++?
He estado jugando con C ++ 11 durante los últimos días, y se me ocurrió algo extraño. Si quiero inicializar uniformemente un int: int a{5}; Pero si hago lo mismo con un std :: vector: std::vector b{2}; No construye una matriz de dos elementos, sino una matriz con un elemento de valor dos. Parece que […]