Articles of c ++ 11

scanf en un objeto istream

NOTA: He visto la publicación ¿Cuál es el cin analougus de la entrada formateada Scanf? antes de hacer la pregunta y la publicación no resuelve mi problema aquí. La publicación busca C ++, la forma de hacerlo, pero como ya mencioné, es inconveniente usar C ++, es una manera de hacerlo a veces y tengo […]

Usando vector como buffer sin inicializarlo en resize ()

Quiero usar vector como buffer. La interfaz es perfecta para mis necesidades, pero hay una penalización de rendimiento al redimensionarla más allá de su tamaño actual, ya que la memoria se inicializa. No necesito la inicialización, ya que los datos serán sobrescritos en cualquier caso por algunas funciones C de terceros. ¿Hay alguna manera o […]

C ++ 11 move constructor no llamado, se prefiere el constructor predeterminado

Supongamos que tenemos esta clase: class X { public: explicit X (char* c) { cout<<"ctor"<<endl; init(c); }; X (X& lv) { cout<<"copy"<<endl; init(lv.c_); }; X (X&& rv) { cout<<"move"<<endl; c_ = rv.c_; rv.c_ = nullptr; }; const char* c() { return c_; }; private: void init(char *c) { c_ = new char[strlen(c)+1]; strcpy(c_, c); }; […]

No se puede pasar el objeto temporal como referencia

Este es un ejemplo muy mínimo: class Foo { public: Foo(int x) {}; }; void ProcessFoo(Foo& foo) { } int main() { ProcessFoo(Foo(42)); return 0; } Lo anterior comstack bien en Visual Studio, pero genera un error en Linux y Mac. Comstackr lo anterior genera esto: $ g++ -std=c++11 -c newfile.cpp newfile.cpp: In function ‘int […]

Inserción en unordered_set con función hash personalizada

Tengo el siguiente código para hacer un unordered_set . Esto comstack bien. struct Interval { unsigned int begin; unsigned int end; bool updated; //true if concat. initially false int patternIndex; //pattern index. valid for single pattern int proteinIndex; //protein index. for retrieving the pattern }; struct Hash { size_t operator()(const Interval &interval); }; size_t Hash::operator()(const […]

¿Codecvt no es un encabezado estándar?

Este código se comstack con Visual C ++ 11 y se ejecuta como se esperaba en Windows 7, pero no se puede comstackr con MinGW 4.7.0 en Windows 7 o gcc 4.8.0 en Linux. Comstackndo con -std=c++11 flag #include #include // convert UTF-8 string to wstring std::wstring utf8_to_wstring (const std::string& str) { std::wstring_convert<std::codecvt_utf8> myconv; return […]

Pasando rvalues ​​a través de std :: bind

Quiero pasar un valor r a través de std::bind a una función que toma una referencia rvalue en C ++ 0x. No puedo entender cómo hacerlo. Por ejemplo: #include #include template void foo(Type &&value) { Type new_object = std::forward(value); // move-construct if possible } class Movable { public: Movable(Movable &&) = default; Movable &operator=(Movable &&) […]

¿Cómo std :: end conoce el final de una matriz?

std::begin y std::end conocen el principio y el final de un container o una array . Es muy fácil conocer el end y el begin de un vector por ejemplo, porque es una clase que proporciona esta información. Pero, ¿cómo sabe el final de una array como la siguiente? int simple_array[5]{1, 2, 3, 4, 5}; […]

¿Por qué se excluyen los parámetros de valor por defecto de NRVO?

Imagina: S f(S a) { return a; } ¿Por qué no está permitido alias ay el valor de retorno? S s = f(t); S s = t; // can’t generally transform it to this 🙁 La especificación no permite esta transformación si el constructor de copia de S tiene efectos secundarios. En su lugar, requiere […]

std :: put_time estado de implementación en GCC?

Estaba intentando comstackr este progtwig de ejemplo usando GCC (versiones probadas 4.5.1, 4.6.3, 4.8.4): #include #include #include #include using std::chrono::system_clock; int main() { system_clock::time_point now = system_clock::now(); std::time_t now_c = system_clock::to_time_t( now – std::chrono::hours(24)); std::cout << "One day ago, the time was " << std::put_time(std::localtime(&now_c), "%F %T") << '\n'; } Pero me dice: prog.cpp: In […]