Pytania oznaczone «c++»

94
Dlaczego makra preprocesora są złe i jakie są alternatywy?

Zawsze o to pytałem, ale nigdy nie otrzymałem naprawdę dobrej odpowiedzi; Myślę, że prawie każdy programista jeszcze przed napisaniem pierwszego „Hello World” zetknął się z wyrażeniem „makro nie powinno być nigdy używane”, „makro jest złe” i tak dalej, moje pytanie brzmi: dlaczego? Czy po tylu...

94
Jak działa luka JPEG of Death?

Czytałem o starszym exploicie przeciwko GDI + w Windows XP i Windows Server 2003 o nazwie JPEG of death dla projektu, nad którym pracuję. Exploit jest dobrze wyjaśniony w poniższym linku: http://www.infosecwriters.com/text_resources/pdf/JPEG.pdf Zasadniczo plik JPEG zawiera sekcję o nazwie...

94
Czy można rozróżnić między 0 a -0?

Wiem, że wartości całkowite 0i -0są zasadniczo takie same. Zastanawiam się jednak, czy można je rozróżnić. Na przykład, skąd mam wiedzieć, czy zmienna została przypisana -0? bool IsNegative(int num) { // How ? } int num = -0; int additinon = 5; num += (IsNegative(num)) ? -addition :...

94
Co oznacza [=] w C ++?

Chcę wiedzieć, co [=]robi? Oto krótki przykład template <typename T> std::function<T (T)> makeConverter(T factor, T offset) { return [=] (T input) -> T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); Jak kod działałby z []zamiast...

93
Konwersja bool na tekst w C ++

Może to głupie pytanie, ale czy istnieje sposób na przekonwertowanie wartości logicznej na ciąg znaków w taki sposób, że 1 zamienia się w „prawda”, a 0 w „fałsz”? Mógłbym po prostu użyć instrukcji if, ale byłoby miło wiedzieć, czy można to zrobić z językiem lub standardowymi bibliotekami. Poza...

93
std :: map insert lub std :: map find?

Zakładając mapę, na której chcesz zachować istniejące wpisy. W 20% przypadków wpis, który wstawiasz, to nowe dane. Czy jest korzyść z robienia std :: map :: find then std :: map :: insert przy użyciu tego zwróconego iteratora? A może szybciej jest próba wstawienia, a następnie działanie w...

93
Co robi extern inline?

Rozumiem, że inlinesamo w sobie jest sugestią dla kompilatora i według własnego uznania może wbudować funkcję lub nie, a także wygeneruje kod wynikowy, który można połączyć. Myślę, że static inlinerobi to samo (może być wbudowane lub nie), ale po wstawieniu nie utworzy kodu wynikowego, który...