Pytania otagowane jako c++

C ++ jest językiem programowania ogólnego przeznaczenia. Został pierwotnie zaprojektowany jako rozszerzenie do C i ma podobną składnię, ale teraz jest to zupełnie inny język. Ten znacznik służy do pytań o kod (kompilowany) za pomocą kompilatora C ++. Użyj tagu specyficznego dla wersji w przypadku pytań związanych z określoną wersją standardową [C ++ 11], [C ++ 14], [C ++ 17] lub [C ++ 20] itp.


3
Co oznacza thread_local w C ++ 11?
Jestem zdezorientowany z opisem thread_localw C ++ 11. Rozumiem, że każdy wątek ma unikalną kopię zmiennych lokalnych w funkcji. Dostęp do zmiennych globalnych / statycznych można uzyskać we wszystkich wątkach (prawdopodobnie dostęp zsynchronizowany za pomocą blokad). A thread_localzmienne są widoczne dla wszystkich wątków, ale mogą być modyfikowane tylko przez wątek, …

8
Oficjalnie, po co jest nazwa maszyny?
Czasami widziałem kilka naprawdę nieczytelnych komunikatów o błędach wypluwanych gccpodczas korzystania z szablonów ... W szczególności miałem problemy, w których pozornie poprawne deklaracje powodowały bardzo dziwne błędy kompilacji, które magicznie znikały, dodając typenamesłowo kluczowe do początku deklaracja ... (na przykład w zeszłym tygodniu deklarowałem dwa iteratory jako elementy innej klasy …
135 c++  templates 

4
Jakie są domyślne katalogi w GCC?
Kiedy kompiluję bardzo prosty plik źródłowy za pomocą gcc, nie muszę określać ścieżki do standardowych plików dołączanych, takich jak stdio lub stdlib. Skąd GCC wie, jak znaleźć te pliki? Czy ma /usr/includewbudowaną ścieżkę na stałe, czy też będzie pobierać ścieżki z innych składników systemu operacyjnego?
135 c++  c  linux  gcc  include-path 

9
Czy funkcja rekurencyjna może być wbudowana?
inline int factorial(int n) { if(!n) return 1; else return n*factorial(n-1); } Jak czytałem to , okazało się, że powyższy kod doprowadziłoby do „nieskończonej kompilacji”, jeśli nie obsługiwane przez kompilator poprawnie. W jaki sposób kompilator decyduje, czy wstawić funkcję, czy nie?



17
Wątki w systemie Windows: _beginthread vs _beginthreadex vs CreateThread C ++
Jaki jest lepszy sposób na rozpoczęcie wątku _beginthread, _beginthreadxczy CreateThread? Próbuję ustalić, jakie są zalety / wady _beginthread, _beginthreadexi CreateThread. Wszystkie te funkcje zwracają uchwyt wątku do nowo utworzonego wątku, już wiem, że CreateThread dostarcza trochę dodatkowych informacji, gdy wystąpi błąd (można to sprawdzić, wywołując GetLastError) ... ale jakie są …
134 c++  c  multithreading  winapi 


18
Kiedy ktoś użyłby związku? Czy to pozostałość po czasach „tylko C”?
Nauczyłem się, ale tak naprawdę nie mam związków zawodowych. Każdy tekst w C lub C ++, przez który przechodzę, wprowadza je (czasami mimochodem), ale zwykle podają bardzo niewiele praktycznych przykładów, dlaczego i gdzie ich używać. Kiedy związki byłyby przydatne w nowoczesnym (lub nawet starszym) przypadku? Moje jedyne dwa przypuszczenia to …
133 c++  c  unions 

3
Co się stanie, jeśli wywołasz funkcję erase () na elemencie mapy podczas iteracji od początku do końca?
W poniższym kodzie wykonuję pętlę przez mapę i sprawdzam, czy element musi zostać usunięty. Czy można bezpiecznie wymazać element i kontynuować iterację, czy też muszę zebrać klucze w innym kontenerze i wykonać drugą pętlę, aby wywołać funkcję erase ()? map<string, SerialdMsg::SerialFunction_t>::iterator pm_it; for (pm_it = port_map.begin(); pm_it != port_map.end(); pm_it++) …
133 c++  stl  iterator 

3
Jak wydrukować uint64_t? Niepowodzenie z: „fałszywe końcowe„% ”w formacie”
Napisałem bardzo prosty kod testowy printf uint64_t: #include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; } Do kompilacji używam ubuntu 11.10 (64-bitowego) i gcc w wersji 4.6.1, ale nie powiodło się: main.cpp: In function ‘int main()’: main.cpp:9:30: error: …
133 c++  c 

13
Jakakolwiek optymalizacja dla dostępu swobodnego na bardzo dużej tablicy, gdy wartość w 95% przypadków wynosi 0 lub 1?
Czy jest możliwa optymalizacja dla dostępu losowego na bardzo dużej tablicy (obecnie używam uint8_ti pytam o to, co jest lepsze) uint8_t MyArray[10000000]; gdy wartość w dowolnej pozycji w tablicy to 0 lub 1 w 95% wszystkich przypadków, 2 na 4% przypadków, od 3 do 255 w pozostałych 1% przypadków? Czy …

8
Jak szybko jest D w porównaniu z C ++?
Podoba mi się niektóre funkcje D, ale czy byłby zainteresowany, gdyby miały one karę w czasie wykonywania? Dla porównania zaimplementowałem prosty program, który oblicza iloczyn skalarny wielu krótkich wektorów zarówno w C ++, jak iw D. Wynik jest zaskakujący: D: 18,9 s [patrz poniżej, aby zapoznać się z końcowym czasem …
133 c++  performance  runtime  d 


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.