Preguntas etiquetadas con gcc

GCC es la colección del compilador GNU. Es el compilador estándar de facto para C, C ++, Go, Fortran y Ada en Linux y también es compatible con muchos otros lenguajes y plataformas. Además del compilador, GCC tiene una cadena de herramientas (libc, libstdc ++, objdump, nm, etc.) que se utilizan ampliamente en varias plataformas y sistemas.


2
¿Cómo crea la macro lambda una lambda?
Encontré este fragmento de código en GitHub pero no lo entendí del todo: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Entonces: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is …

1
Clang no compila código, pero gcc y msvc lo compilaron
No entiendo cuál es el problema: ya sea en mi código o en el compilador (menos posible). Hay un código como este: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, …


5
Comparando un poco a un booleano
Digamos que tengo un conjunto de banderas, codificadas en uint16_t flags. Por ejemplo, AMAZING_FLAG = 0x02. Ahora tengo una función. Esta función necesita verificar si quiero cambiar la bandera, porque si quiero hacer eso, necesito escribir en flash. Y eso es caro. Por lo tanto, quiero un cheque que me …






3
¿Se puede convertir nullptr a uintptr_t? Diferentes compiladores no están de acuerdo
Considere este programa: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } No se pudo compilar con msvc v19.24: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to …
10 c++  c++11  gcc  visual-c++  clang 

1
Problema en GCC / C ++ 17 con la clase de plantilla de plantilla
Considere las 2 siguientes sobrecargas template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } El primero funciona para clases regulares, mientras que el segundo funciona para plantillas que no se instancian. Por ejemplo: std::cout<<test<int>()<<std::endl; <-- this yields 1 std::cout<<test<std::list>()<<std::endl; <--this yields …
10 c++  templates  gcc  clang  c++17 

1
Pérdida de memoria durante un_orped_map :: inserte la excepción KeyEqual con GCC - ¿rompiendo la fuerte garantía de seguridad de excepción?
Estoy usando GCC 7.3.1, pero también probé en coliru, que creo que es la versión 9.2.0. Construir con lo siguiente: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Aquí está rai.cpp: #include <iostream> #include <unordered_map> int main() { try { struct MyComp { bool operator()(const std::string&, const std::string&) const { throw std::runtime_error("Nonono"); } }; …

2
Deducción no coincidente de tipos automáticos entre diferentes compiladores de c ++
Entonces, estoy tratando de implementar el producto punto ( https://en.wikipedia.org/wiki/Dot_product ) en un poco de C ++ moderno y se me ocurrió el siguiente código: #include <iostream> template<class... Args> auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 …


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.