Resultados de la búsqueda a petición "compiler-bug"

1 la respuesta

¿Por qué gcc y clang producen resultados diferentes para este programa? (operador de conversión vs constructor)

programa: #include <stdio.h> struct bar_t { int value; template<typename T> bar_t (const T& t) : value { t } {} // edit: You can uncomment these if your compiler supports // guaranteed copy elision (c++17). Either way, it // doesn't affect the ...

3 la respuesta

Tipo de retorno del operador condicional y búsqueda en dos fases

Considere el siguiente fragmento: struct Base { }; struct Derived : Base { }; void f(Base &) { std::cout << "f(Base&)\n"; } template <class T = int> void g() { Derived d; f(T{} ? d : d); // 1 } void f(Derived &) { std::cout << "f(Derived&)\n"; } ...

1 la respuesta

¿Es esto un error del compilador? ¿Estoy haciendo algo mal?

Estoy tratando de hacer un mapa simple para buscar algunos datos, pero los resultados están saliendo muy extraños: #include "stdafx.h" #include "atlstr.h" #include <map> enum InputTypes { Manual, Automatic, Assisted, Imported, Offline }; struct ...

3 la respuesta

Clang y las expresiones de plegado binario: la maldición del paquete de parámetros vacío

Específicamente Clang 3.6.0, el que actualmente aloja Coliru. Todos estos fragmentos se llaman desde: int main() { foo(); std::cout << "\n----\n"; foo(1, 2, 3); }El siguiente código: template <class... Args> void foo(Args... args) { std::cout ...

2 la respuesta

En el modo de lanzamiento, el comportamiento del código no es el esperado

El siguiente código genera resultados diferentes en el modo de depuración y en el modo de lanzamiento (con Visual Studio 2008): int _tmain(int argc, _TCHAR* argv[]) { for( int i = 0; i < 17; i++ ) { int result = i * 16; if( result > 255 ) { ...

1 la respuesta

¿Por qué este código de Haskell se ejecuta más lentamente con -O?

Este fragmento de código Haskell se ejecutamucho más lento con-O, pero-O debiera serno peligroso [https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/options-optimise.html#optimise-pkgs] . ¿Alguien puede decirme qué pasó? Si es ...

1 la respuesta

¿Puede sizeof anidado dos veces ser una expresión dependiente?

Noté que gcc 5.0 rechaza el siguiente código, mientras que clang 3.6 lo acepta. template<int n> struct I { typedef int Type; }; template<typename T> struct A { typedef I<sizeof(sizeof(T))>::Type Type; };Los dos compiladores parecen diferir sobre ...

3 la respuesta

¿Se permiten los operadores de conversión explícitos en las listas de inicializadores con llaves?

El siguiente código se compila con GCC 4.9.2 pero no con Clang 3.5.0: #include <string> class Foo { public: explicit operator std::string() const; }; std::string bar{Foo{}}; // Works in g++, fails in clang++ std::string baz(Foo{}); // Works in ...

1 la respuesta

Posible error del compilador en MSVC12 (VS2013) con inicializador designado

Usando VS2013 Actualización 2, me encontré con un extraño mensaje de error: // test.c int main(void) { struct foo { int i; float f; }; struct bar { unsigned u; struct foo foo; double d; }; struct foo some_foo = { .i = 1, .f = 2.0 }; struct bar ...

1 la respuesta

inicializador de paréntesis o igual en uniones

Relacionado:Cómo inicializar un miembro que no es POD en Union [https://stackoverflow.com/questions/23004941/how-to-initialize-a-non-pod-member-in-union/23005015] El estándar dice Como máximo, un miembro de datos no estático de una unión puede ...