Pytania otagowane jako gcc

GCC to kolekcja kompilatorów GNU. Jest to de facto standardowy kompilator dla C, C ++, Go, Fortran i Ady w systemie Linux i obsługuje również wiele innych języków i platform. Oprócz kompilatora GCC ma zestaw narzędzi (libc, libstdc ++, objdump, nm itp.), Które są szeroko stosowane na kilku platformach i systemach.

1
gcc-10.0.1 Określony błąd segmentu
Mam pakiet R z kompilowanym kodem C, który był stosunkowo stabilny od dłuższego czasu i jest często testowany na wielu różnych platformach i kompilatorach (windows / osx / debian / fedora gcc / clang). Niedawno dodano nową platformę do ponownego przetestowania pakietu: Logs from checks with gcc trunk aka 10.0.1 …

1
Dlaczego GCC inicjuje agregację tablicy najpierw wypełniając całość zerami, w tym elementami niezerowymi?
Dlaczego gcc wypełnia całą tablicę zerami zamiast tylko pozostałych 96 liczb całkowitych? Wszystkie niezerowe inicjalizatory znajdują się na początku tablicy. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier // forces the compiler to materialize a[] in memory …


1
Clang nie kompiluje kodu, ale skompilowały go gcc i msvc
Nie rozumiem, na czym polega problem: ani w moim kodzie, ani w kompilatorze (mniej możliwe). Jest taki kod: #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, std::void_t<typename T::dummy_iterator>> : std::true_type …


5
Porównywanie trochę do wartości logicznej
Powiedzmy, że mam zestaw flag zakodowanych w uint16_t flags. Na przykład AMAZING_FLAG = 0x02. Teraz mam funkcję. Ta funkcja musi sprawdzić, czy chcę zmienić flagę, ponieważ jeśli chcę to zrobić, muszę napisać, aby flashować. A to jest drogie. Dlatego chcę testu, który mówi mi, czy flags & AMAZING_FLAGjest równy doSet. …



1
Implementacja nawiasów kątowych przez GCC obejmuje. Dlaczego musi być tak, jak opisano poniżej?
Ten dokument w sekcji 2.6 „Obliczone obejmuje” zawiera następujący akapit: Jeśli linia zostanie rozwinięta do strumienia tokena rozpoczynającego się od <tokena i zawierającego token>, wówczas tokeny między <a pierwszym> są łączone w celu utworzenia nazwy pliku, która ma zostać uwzględniona. Każda biała spacja między tokenami jest zredukowana do pojedynczej spacji; …
11 c++  c  gcc  language-lawyer 

2
Przykładowy kod IBM, funkcje nieprzyłączające nie działają w moim systemie
Studiowałem ponowne entuzjazm w programowaniu. Na to stronie IBM (naprawdę dobra). Założyłem kod, skopiowany poniżej. To pierwszy kod, który pojawia się po stronie. Kod próbuje pokazać problemy dotyczące wspólnego dostępu do zmiennej w nieliniowym rozwoju programu tekstowego (asynchroniczność), wypisując dwie wartości, które stale się zmieniają w „niebezpiecznym kontekście”. #include <signal.h> …
11 c  gcc  signals  x86-64  data-race 


3
Czy nullptr można przekonwertować na uintptr_t? Różne kompilatory się nie zgadzają
Rozważ ten program: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Nie udało się skompilować z 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
Problem w GCC / C ++ 17 z klasą szablonów szablonów
Rozważ 2 następujące przeciążenia template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } Pierwszy działa dla klas regularnych, a drugi dla szablonów, które nie są tworzone. Na przykład: std::cout<<test<int>()<<std::endl; <-- this yields 1 std::cout<<test<std::list>()<<std::endl; <--this yields 0 Teraz rozważ następującą funkcję …
10 c++  templates  gcc  clang  c++17 

1
Wyciek pamięci podczas unordered_map :: wstaw wyjątek KeyEqual z GCC - przełamanie silnej gwarancji bezpieczeństwa wyjątku?
Korzystam z GCC 7.3.1, ale testowałem również na coliru, które moim zdaniem to wersja 9.2.0. Kompiluj za pomocą: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Oto 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"); } }; std::unordered_map<std::string, std::string, std::hash<std::string>, …

2
Niedopasowane odliczanie typów auto między różnymi kompilatorami c ++
Próbuję więc wdrożyć produkt kropkowy ( https://en.wikipedia.org/wiki/Dot_product ) w jakimś smaku współczesnego C ++ i wymyśliłem następujący kod: #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 = v1.begin(); auto v2 = {brgs...}, i2 …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.