Pytania oznaczone «c++»

89
Jak działa gwarantowana eliminacja kopii?

Na spotkaniu Oulu ISO C ++ w 2016 r ., Komitet normalizacyjny przegłosował propozycję o nazwie Gwarantowane eliminowanie kopii poprzez uproszczone kategorie wartości w języku C ++ 17. Jak dokładnie działa gwarantowana eliminacja kopii? Czy obejmuje niektóre przypadki, w których usunięcie kopii...

89
Dlaczego znak „A” miałby być porównywany z 0x41?

Patrzyłem na kod w C ++ i znalazłem następującą konstrukcję: if('A' == 0x41) { // ... } else if('A' == 0xc1) { // ... } else { // ... } Otrzymuję ostrzeżenie programu Visual Studio o treści: Ostrzeżenie Wyrażenie warunkowe C4127 jest stałe. Visual Studio ma rację - z pewnością „A”...

89
Jaki jest cel używania związku z tylko jednym członkiem?

Kiedy czytałem kod źródłowy seastar , zauważyłem, że istnieje zwana struktura związkowa, tx_sidektóra ma tylko jednego członka. Czy to jakiś hack, aby poradzić sobie z pewnym problemem? Do Twojej wiadomości wklejam tx_sideponiższą strukturę: union tx_side { tx_side() {} ~tx_side() {} void...

89
Czy jest jakiś powód, aby nie używać globalnych lambdas?

Mieliśmy funkcję, która wykorzystywała wewnętrzną lambda, która nie przechwytuje, np .: void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } Teraz funkcjonalność zaimplementowana przez lambda stała się potrzebna gdzie indziej, więc zamierzam...

88
Używanie continue w instrukcji switch

Chcę przejść ze środka switchinstrukcji do instrukcji pętli w następującym kodzie: while (something = get_something()) { switch (something) { case A: case B: break; default: // get another something and try again continue; } // do something for a handled something...

88
Jak działa ten program?

#include <stdio.h> int main() { float a = 1234.5f; printf("%d\n", a); return 0; } Wyświetla 0!! Jak to możliwe? Jaki jest tego powód? Celowo umieściłem %dw printfoświadczeniu znak, aby zbadać zachowanie printf.

88
Kompilowanie programu w C ++ za pomocą gcc

Pytanie: Jak skompilować program w C ++ za pomocą kompilatora gcc? info.c: #include<iostream> using std::cout; using std::endl; int main() { #ifdef __cplusplus cout << "C++ compiler in use and version is " << __cplusplus << endl; #endif cout <<"Version is "...

88
Jak działa biblioteka importu? Detale?

Wiem, że to może wydawać się dość proste dla maniaków. Ale chcę, żeby było to krystalicznie jasne. Kiedy chcę użyć biblioteki DLL Win32, zwykle po prostu wywołuję interfejsy API, takie jak LoadLibrary () i GetProcAdderss (). Ale ostatnio rozwijam się z DirectX9 i muszę dodać pliki d3d9.lib ,...

88
Funkcja zwracająca wyrażenie lambda

Zastanawiam się, czy można napisać funkcję zwracającą funkcję lambda w C ++ 11. Oczywiście problemem jest zadeklarowanie takiej funkcji. Każda lambda ma typ, ale tego typu nie można wyrazić w C ++. Myślę, że to nie zadziała: auto retFun() -> decltype ([](int x) -> int) { return [](int x)...

88
Jak działa na podstawie zakresu dla zwykłych tablic?

W C ++ 11 możesz użyć zakresu opartego na zakresie for, który działa jak foreachinne języki. Działa nawet ze zwykłymi tablicami C: int numbers[] = { 1, 2, 3, 4, 5 }; for (int& n : numbers) { n *= 2; } Skąd wie, kiedy przestać? Czy działa tylko z tablicami statycznymi, które zostały...