Resultados de la búsqueda a petición "compiler-bug"
¿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 ...
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"; } ...
¿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 ...
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 ...
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 ) { ...
¿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 ...
¿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 ...
¿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 ...
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 ...
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 ...