Articles of libstdc ++

¿Por qué esta secuencia de archivos, sin indicadores de error establecidos, no se puede leer a menos que lo haga tellg ()?

Tengo un flujo que parece entrar en un estado de falla fantasma, aunque al examinarlo (a través de la conversión a bool ) no se detectan marcas de error. Las lecturas posteriores fallan, lo cual es inesperado. #include #include #include int main() { const unsigned int SAMPLE_COUNT = 2; // Setup – create file with […]

std :: string SSO tuning

¿Es posible afinar std::string Optimización de std::string pequeñas / cortas de alguna manera? Por ejemplo, si tengo que trabajar con muchas cadenas bastante cortas pero con más de 15 caracteres (como el lastname + “, ” + firstname + “, ” + middlename cuya longitud suele estar en el rango de [20; 40] ). Actualizaciones: […]

Probar si la versión de libstdc ++ usa un std :: string compatible con C ++ 11

Estoy escribiendo un código de C ++ 11 que hace suposiciones sobre la naturaleza de std::string que son válidas, pero representan un comportamiento que se cambió en C ++ 11. En los días anteriores, la implementación de basic_string libstdc ++ se ajustaba a los requisitos 98/03, pero no a los requisitos más estrictos de C […]

EXC_BAD_ACCESS cuando se usa std :: function w / std :: bind

Después de actualizar a XCode 5 usando std :: function con std :: bind parece estar generando excepciones EXC_BAD_ACCESS. Parece que el puntero __base dentro de la implementación de la función std :: termina siendo nulo, lo que resulta en un acceso incorrecto, pero no tengo claro por qué ese sería el caso. ¿Alguien tiene […]

¿Qué efecto tendría LWG2349?

Mientras que libstdc ++ no lo hace, libc ++ sigue el estándar que establece que pasar ios_base::failbit a basic_istream::exceptions no tiene efecto en la entrada con formato. Por ejemplo este código: istringstream is{“ASD”}; double foo; is.exceptions(istream::failbit); try { is >> foo; cout << foo << endl; } catch(ios_base::failure& fail) { cout << "ouch\n"; } Resultaría […]

std :: stringstream comportamiento extraño

Alguna información de fondo, para una tarea asignada tuve que escribir una calculadora de notación polaca utilizando árboles binarios, para que esto funcionara tuve que analizar la entrada de la línea de comandos para que construyera correctamente el árbol binario y luego la revisara para dar una respuesta válida A la expresión matemática que se […]

¿Es gcc 4.8 o anterior buggy sobre expresiones regulares?

Estoy tratando de usar std :: regex en un trozo de código C ++ 11, pero parece que el soporte es un poco defectuoso. Un ejemplo: #include #include int main (int argc, const char * argv[]) { std::regex r(“st|mt|tr”); std::cerr << "st|mt|tr" << " matches st? " << std::regex_match("st", r) << std::endl; std::cerr << "st|mt|tr" […]

¿Cómo puedo probar una versión de libstdc ++

Así que estaba en lo más profundo de mi código al escribir un método de borrado para mi clase contenedora cuando llamé a std::vector::erase con un const_iterator y si fallaba const_iterator . Al igual que lo hizo para esta persona . Siguiendo los enlaces a gnu libstdc ++, el estado muestra que este problema aún […]

La clase base común rompe la optimización de la clase base vacía para las tuplas

gcc 4.7.1 realiza una optimización de clase base vacía para tuplas, lo que considero una característica realmente útil. Sin embargo, parece haber un límite inesperado para esto: #include #include #include class A { }; class B : public A { std::uint32_t v_; }; class C : public A { }; static_assert(sizeof(B) == 4, “A has […]

El proyecto Pascal / C ++ gratuito se bloquea en cout :: centinela

Tengo un proyecto mixto de Free Pascal / C ++. Debian 5.0 (“Lenny”) en i386, FPC 2.4.4. Cuando ejecuto el progtwig, se bloquea en la primera llamada cout<< . Curiosamente, solía trabajar durante algún tiempo; alguna actualización del sistema operativo probablemente lo rompió. Aquí está el problema aislado: p.pas: {$L co} program p; uses initc; […]