Preguntas etiquetadas con c++11

Use esta etiqueta para el código que debe compilarse como C ++ 11 (sin usar ninguna característica introducida en C ++ 14 o posterior).


3
¿Cómo verificar correctamente si la función std :: está vacía en C ++ 11?
Me preguntaba cómo comprobar correctamente si un std::functionestá vacío. Considere este ejemplo: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Este código se compila bien en MSVC, pero si llamo doSomething()sin inicializar eventFuncel código obviamente se …

6
¿Por qué std :: initializer_list no es un idioma integrado?
¿Por qué no está std::initializer_listincorporado un lenguaje central? Me parece que es una característica bastante importante de C ++ 11 y, sin embargo, no tiene su propia palabra clave reservada (o algo similar). En cambio, initializer_listes solo una clase de plantilla de la biblioteca estándar que tiene un mapeo implícito …

5
¿Puedo inicializar en lista un vector de tipo de solo movimiento?
Si paso el siguiente código a través de mi instantánea de GCC 4.7, intenta copiar los unique_ptrs en el vector. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Obviamente, eso no puede funcionar porque std::unique_ptrno se puede copiar: error: …

2
¿Este código de la sección 36.3.6 de la cuarta edición del lenguaje de programación C ++ tiene un comportamiento bien definido?
En la sección Operaciones similares a STL del lenguaje de programación C ++ de Bjarne Stroustrup, la cuarta edición, se utiliza el siguiente código como ejemplo de encadenamiento :36.3.6 void f2() { std::string s = "but I have heard it works even if you don't believe in it" ; s.replace(0, …


3
¿Cuándo usar el inicializador entre corchetes?
En C ++ 11, tenemos esa nueva sintaxis para inicializar clases que nos da una gran cantidad de posibilidades de cómo inicializar variables. { // Example 1 int b(1); int a{1}; int c = 1; int d = {1}; } { // Example 2 std::complex<double> b(3,4); std::complex<double> a{3,4}; std::complex<double> c …

8
C ++ lambda con capturas como puntero de función
Estaba jugando con lambdas de C ++ y su conversión implícita a punteros de función. Mi ejemplo inicial fue usarlos como devolución de llamada para la función ftw. Esto funciona como se esperaba. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const …



4
¿Cómo obtener la duración, como int milli's y float segundos de <chrono>?
Estoy intentando usar la biblioteca de crono para temporizadores y duraciones. Quiero poder tener un Duration frameStart;(desde el inicio de la aplicación) y un Duration frameDelta;(tiempo entre cuadros) Necesito poder obtener la frameDeltaduración en milisegundos y segundos flotantes. ¿Cómo se hace esto con las nuevas &lt;chrono&gt;bibliotecas de c ++ 11 …
94 c++  c++11  timer  chrono 

6
C ++ termina llamado sin una excepción activa
Recibo un error de C ++ con subprocesos: terminate called without an active exception Aborted Aquí está el código: #include &lt;queue&gt; #include &lt;thread&gt; #include &lt;mutex&gt; #include &lt;condition_variable&gt; template&lt;typename TYPE&gt; class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &amp;operator&lt;&lt;(TYPE &amp;other) { std::unique_lock&lt;std::mutex&gt; mtx_lock(mtx); …

3
Tipo de retorno explícito de Lambda
Cuando intento compilar este código (VS2010), aparece el siguiente error: error C3499: a lambda that has been specified to have a void return type cannot return a value void DataFile::removeComments() { string::const_iterator start, end; boost::regex expression("^\\s?#"); boost::match_results&lt;std::string::const_iterator&gt; what; boost::match_flag_type flags = boost::match_default; // Look for lines that either start with …

15
¿C ++ 11 tiene propiedades de estilo C #?
En C #, hay un buen azúcar de sintaxis para campos con getter y setter. Además, me gustan las propiedades implementadas automáticamente que me permiten escribir public Foo foo { get; private set; } En C ++ tengo que escribir private: Foo foo; public: Foo getFoo() { return foo; } …
93 c#  c++  class  c++11 

2
¿Qué significa [=] en C ++?
Quiero saber que [=]hace He aquí un breve ejemplo template &lt;typename T&gt; std::function&lt;T (T)&gt; makeConverter(T factor, T offset) { return [=] (T input) -&gt; T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); ¿Cómo funcionaría el código en []lugar de [=]? yo asumo eso …
93 c++  c++11  lambda 

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.