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.

12
Nieużywany parametr w języku c ++ 11
W c ++ 03 i wcześniejszych, aby wyłączyć ostrzeżenie kompilatora o nieużywanym parametrze, zwykle używam takiego kodu: #define UNUSED(expr) do { (void)(expr); } while (0) Na przykład int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); return 0; } Ale makra nie są najlepszą praktyką dla języka C ++, więc. Czy …


3
Różnica insert i push_back wektora C ++
Chcę wiedzieć, jakie są różnice (s) pomiędzy vector„s push_backi insertfunkcji. Czy są jakieś różnice strukturalne? Czy jest naprawdę duża różnica (y) w wydajności?
79 c++ 




8
Niezdefiniowane odniesienie do stałej statycznej int
Dzisiaj natknąłem się na ciekawy problem. Rozważmy ten prosty przykład: template <typename T> void foo(const T & a) { /* code */ } // This would also fail // void foo(const int & a) { /* code */ } class Bar { public: static const int kConst = 1; void …
79 c++  gcc 

8
Odejmowanie spakowanych 8-bitowych liczb całkowitych w 64-bitowej liczbie całkowitej przez 1 równolegle, SWAR bez sprzętowej karty SIMD
Jeśli mam 64-bitową liczbę całkowitą, którą interpretuję jako tablicę spakowanych 8-bitowych liczb całkowitych z 8 elementami. Muszę odjąć stałą 1od każdej spakowanej liczby całkowitej podczas obsługi przelewu bez wpływu jednego elementu na wynik innego elementu. Mam ten kod w tej chwili i działa, ale potrzebuję rozwiązania, które odejmuje każdą zapakowaną …
77 c++  c  bit-manipulation  simd  swar 

7
Czy mogę użyć NULL jako podstawienia wartości 0?
Czy mogę używać NULLwskaźnika jako zamiennika wartości 0? Czy jest w tym coś złego? Jak na przykład: int i = NULL; jako zamiennik dla: int i = 0; W ramach eksperymentu skompilowałem następujący kod: #include <stdio.h> int main(void) { int i = NULL; printf("%d",i); return 0; } Wynik: 0 Rzeczywiście …

10
Używanie std :: vector jako widoku surowej pamięci
Korzystam z zewnętrznej biblioteki, która w pewnym momencie daje mi surowy wskaźnik do tablicy liczb całkowitych i rozmiaru. Teraz chciałbym użyć, std::vectoraby uzyskać dostęp i zmodyfikować te wartości w miejscu, zamiast uzyskiwać do nich dostęp za pomocą surowych wskaźników. Oto sztuczny przykład, który wyjaśnia tę kwestię: size_t size = 0; …
71 c++  c++11  vector  stdvector 


3
Program wielowątkowy utknął w trybie zoptymalizowanym, ale działa normalnie w -O0
Napisałem proste programy wielowątkowe w następujący sposób: static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } Zachowuje się normalnie w trybie debugowania w Visual Studio lub -O0w …

2
Jak działa ten kod szablonu, aby uzyskać rozmiar tablicy?
Zastanawiam się, dlaczego ten rodzaj kodu może uzyskać rozmiar tablicy testowej? Nie znam gramatyki w szablonie. Może ktoś mógłby wyjaśnić znaczenie kodu pod template<typename,size_t>. Poza tym preferowany jest również link referencyjny. #define dimof(array) (sizeof(DimofSizeHelper(array))) template <typename T, size_t N> char(&DimofSizeHelper(T(&array)[N]))[N]; void InitDynCalls() { char test[20]; size_t n = dimof(test); printf("%d", …
61 c++  visual-c++ 


5
Jak uzyskać adres funkcji C ++ lambda w samej lambda?
Próbuję dowiedzieć się, jak uzyskać w sobie adres funkcji lambda. Oto przykładowy kod: []() { std::cout << "Address of this lambda function is => " << ???? }(); Wiem, że potrafię uchwycić lambda w zmiennej i wydrukować adres, ale chcę to zrobić w miejscu, gdy wykonuje się ta anonimowa funkcja. …
53 c++  c++11  lambda  c++14  c++17 

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.