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.


6
Jak używać niestandardowego narzędzia do usuwania z elementem członkowskim std :: unique_ptr?
Mam klasę z członkiem unique_ptr. class Foo { private: std::unique_ptr<Bar> bar; ... }; Bar jest klasą strony trzeciej, która ma funkcje create () i niszczą (). Gdybym chciał użyć std::unique_ptrz nim jako samodzielnej funkcji, mógłbym zrobić: void foo() { std::unique_ptr<Bar, void(*)(Bar*)> bar(create(), [](Bar* b){ destroy(b); }); ... } Czy można …



15
Określanie 32 vs 64 bit w C ++
Szukam sposobu, aby wiarygodnie określić, czy kod C ++ jest kompilowany w wersji 32 vs 64 bit. Wymyśliliśmy to, co uważamy za rozsądne rozwiązanie przy użyciu makr, ale byliśmy ciekawi, czy ludzie mogą wymyślić przypadki, w których może się to nie udać, lub czy istnieje lepszy sposób na zrobienie tego. …

12
Jakie platformy mają coś innego niż 8-bitowe znaki?
Od czasu do czasu ktoś na SO wskazuje, że char(inaczej „bajt”) niekoniecznie musi mieć 8 bitów . Wygląda na to, że 8-bitowe charjest prawie uniwersalne. Pomyślałbym, że w przypadku platform głównego nurtu konieczne jest posiadanie 8-bitowego, charaby zapewnić jego żywotność na rynku. Jakie platformy używają obecnie i w przeszłości platformy, …
136 c++  c  cross-platform 

8
C ++ Build Systems - Czego używać? [Zamknięte]
Zamknięte. To pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat przepełnienia stosu. Zamknięte 4 lata temu . Popraw to pytanie Patrzę na rozpoczęcie nowego projektu w C ++ - początkowo tylko w swoim czasie - i …
136 c++  build 

9
Najbardziej elegancki sposób na jednorazowe „jeśli”
Od C ++ 17 można napisać ifblok, który zostanie wykonany dokładnie raz w ten sposób: #include <iostream> int main() { for (unsigned i = 0; i < 10; ++i) { if (static bool do_once = true; do_once) { // Enter only once std::cout << "hello one-shot" << std::endl; // Possibly …
136 c++  if-statement  c++17 

9
Dlaczego nie można zmienić nazwy funkcji w C?
Niedawno przeprowadziłem wywiad i zadałem jedno pytanie, jakie jest zastosowanie extern "C"w kodzie C ++. Odpowiedziałem, że jest to użycie funkcji C w kodzie C ++, ponieważ C nie używa zniekształcania nazw. Zapytano mnie, dlaczego C nie używa przekłamywania nazwisk i szczerze mówiąc, nie mogłem odpowiedzieć. Rozumiem, że gdy kompilator …
136 c++  c  name-mangling  extern-c 

16
Skąd delete [] wie, że to tablica?
W porządku, myślę, że wszyscy zgadzamy się, że to, co dzieje się z następującym kodem, jest nieokreślone, w zależności od tego, co zostanie przekazane, void deleteForMe(int* pointer) { delete[] pointer; } Wskaźnik może być najróżniejszymi rzeczami, więc wykonanie delete[]na nim bezwarunkowego działania jest nieokreślone. Załóżmy jednak, że rzeczywiście przekazujemy wskaźnik …

6
W języku C ++ co oznacza tylda „~” przed nazwą funkcji?
template <class T> class Stack { public: Stack(int = 10) ; ~Stack() { delete [] stackPtr ; } //<--- What does the "~" signify? int push(const T&); int pop(T&) ; int isEmpty()const { return top == -1 ; } int isFull() const { return top == size - 1 ; …
136 c++ 

8
Jaki jest cel używania -pedantic w kompilatorze GCC / G ++?
Ta notatka mówi: -ansi: informuje kompilator, aby zaimplementował opcję języka ANSI. Powoduje to wyłączenie pewnych „funkcji” GCC, które są niezgodne ze standardem ANSI. -pedantic: używane w połączeniu z -ansi, mówi kompilatorowi, aby ściśle przestrzegał standardu ANSI, odrzucając każdy kod, który nie jest zgodny. Po pierwsze: Jaki jest cel -pedantici -ansiopcje …
136 c++  c  gcc  g++ 

6
Wpisz techniki wymazywania
(W przypadku wymazywania typu mam na myśli ukrycie niektórych lub wszystkich informacji o typie dotyczących klasy, trochę jak Boost.Any ). Chcę poznać techniki wymazywania typu, jednocześnie udostępniając te, które znam. Mam nadzieję, że znajdę jakąś szaloną technikę, o której ktoś pomyślał w swojej najciemniejszej godzinie. :) Pierwszym i najbardziej oczywistym …
136 c++  type-erasure 

5
Nowa składnia „= default” w C ++ 11
Nie rozumiem, dlaczego miałbym to zrobić: struct S { int a; S(int aa) : a(aa) {} S() = default; }; Dlaczego po prostu nie powiedzieć: S() {} // instead of S() = default; po co wprowadzać do tego nową składnię?
136 c++  c++11 


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.