Pytania oznaczone «c++»

92
Co to znaczy „używać ODR”?

To właśnie pojawiło się w kontekście innego pytania . Wygląda na to, że funkcje składowe w szablonach klas są tworzone tylko wtedy, gdy są używane przez ODR. Czy ktoś mógłby wyjaśnić, co to dokładnie oznacza. Artykuł Wikipedii na temat reguły jednej definicji (ODR) nie wspomina o „ używaniu ODR...

92
Co znaczy?

Mam 2 zajęcia: class base { virtual void foo() {}; }; class derived : public base { void foo() { base::foo(); } }; Popełniłem błąd i base:foo();zamiast tego pisałem base::foo();. Kod został skompilowany i uruchomiony, ale posegregował. Nie wiem, jak mogę to wygooglować i nie wiem, co to...

92
C ++ Różnica między std :: ref (T) a T &?

Mam kilka pytań dotyczących tego programu: #include <iostream> #include <type_traits> #include <functional> using namespace std; template <typename T> void foo ( T x ) { auto r=ref(x); cout<<boolalpha; cout<<is_same<T&,decltype(r)>::value; } int...

92
Czy ((a + (b & 255)) & 255) to to samo co ((a + b) & 255)?

Przeglądałem kod w C ++ i znalazłem coś takiego: (a + (b & 255)) & 255 Podwójny AND mnie zirytował, więc pomyślałem: (a + b) & 255 ( ai bsą 32-bitowymi liczbami całkowitymi bez znaku) Szybko napisałem skrypt testowy (JS), aby potwierdzić moją teorię: for (var i = 0; i <...

92
Constexpr a makra

Gdzie powinienem preferować używanie makr, a gdzie powinienem preferować constexpr ? Czy nie są w zasadzie takie same? #define MAX_HEIGHT 720 vs constexpr unsigned int max_height = 720;

92
Czy nieużywana zmienna składowa zajmuje pamięć?

Czy inicjowanie zmiennej składowej i brak odwoływania się do niej / używania jej dalej zajmuje pamięć RAM w czasie wykonywania, czy też kompilator po prostu ignoruje tę zmienną? struct Foo { int var1; int var2; Foo() { var1 = 5; std::cout << var1; } }; W powyższym przykładzie...

91
Prekompilowane nagłówki z GCC

Czy ktoś odniósł sukces w uzyskaniu prekompilowanych nagłówków przy współpracy z GCC? Nie miałem szczęścia w moich próbach i nie widziałem wielu dobrych przykładów, jak to skonfigurować. Próbowałem na cygwin gcc 3.4.4 i używam 4.0 na Ubuntu.

91
Deklaracje zmiennych w plikach nagłówkowych - statyczne czy nie?

Podczas refaktoryzacji niektórych #definesnapotkałem deklaracje podobne do następujących w pliku nagłówkowym C ++: static const unsigned int VAL = 42; const unsigned int ANOTHER_VAL = 37; Pytanie brzmi, jaką różnicę, jeśli w ogóle, zrobi statyczność? Zauważ, że wielokrotne dołączanie...

91
Dlaczego std :: stack domyślnie używa std :: deque?

Ponieważ jedyne operacje wymagane do użycia kontenera w stosie to: plecy() push_back () pop_back () Dlaczego domyślny kontener jest dla niego deque zamiast wektorem? Czy deque realokacje nie dają bufora elementów przed front (), aby push_front () było wydajną operacją? Czy te elementy nie...

91
Testowanie wskaźników poprawności (C / C ++)

Czy istnieje sposób na ustalenie (oczywiście programowo), czy dany wskaźnik jest „prawidłowy”? Sprawdzanie wartości NULL jest łatwe, ale co z takimi rzeczami, jak 0x00001234? Podczas próby wyłuskiwania tego rodzaju wskaźnika następuje wyjątek / awaria. Preferowana jest metoda wieloplatformowa,...

91
Co oznacza LPCWSTR i jak należy sobie z tym radzić?

Po pierwsze, co to dokładnie jest? Wydaje mi się, że jest to wskaźnik (LPC oznacza stałą długiego wskaźnika), ale co oznacza „W”? Czy jest to określony wskaźnik do ciągu, czy wskaźnik do określonego ciągu? Na przykład chcę zamknąć okno o nazwie „TestWindow”. HWND g_hTest; LPCWSTR a; *a =...