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.


7
Kiedy zmienne statyczne na poziomie funkcji są przydzielane / inicjowane?
Jestem pewien, że globalnie zadeklarowane zmienne są przydzielane (i inicjowane, jeśli ma to zastosowanie) w czasie uruchamiania programu. int globalgarbage; unsigned int anumber = 42; Ale co ze statycznymi wartościami zdefiniowanymi w funkcji? void doSomething() { static bool globalish = true; // ... } Kiedy jest miejsce na globalishprzydzielenie? Zgaduję, …
89 c++  variables 

4
Kompilowanie kodu wielowątkowego za pomocą g ++
Mam najłatwiejszy kod w historii: #include <iostream> #include <thread> void worker() { std::cout << "another thread"; } int main() { std::thread t(worker); std::cout << "main thread" << std::endl; t.join(); return 0; } chociaż nadal nie mogę go skompilować, g++aby uruchomić. Więcej szczegółów: $ g++ --version g++ (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1 Copyright …
89 c++  linux  ubuntu  gcc  g++ 

3
Wycofanie statycznego słowa kluczowego… koniec?
W C ++ możliwe jest użycie staticsłowa kluczowego w jednostce translacyjnej, aby wpłynąć na widoczność symbolu (deklaracja zmiennej lub funkcji). W n3092 to zostało wycofane: Załącznik D.2 [depr.static] Używanie słowa kluczowego static jest przestarzałe podczas deklarowania obiektów w zakresie przestrzeni nazw (patrz 3.3.6). W n3225 zostało to usunięte. Tylko artykuł …
89 c++  static  c++11  standards 

4
Czy definicja „niestabilności” jest tak zmienna, czy też GCC ma jakieś problemy ze standardami zgodności?
Potrzebuję funkcji, która (jak SecureZeroMemory z WinAPI) zawsze zeruje pamięć i nie jest zoptymalizowana, nawet jeśli kompilator uważa, że ​​pamięć nie będzie już nigdy dostępna. Wydaje się, że jest to idealny kandydat na niestabilność. Ale mam pewne problemy z uruchomieniem tego z GCC. Oto przykładowa funkcja: void volatileZeroMemory(volatile void* ptr, …
89 c++  c  gcc  standards 

6
C ++ wywołanie zwrotne przy użyciu elementu członkowskiego klasy
Wiem, że zadawano to wiele razy i dlatego trudno jest przekopać się przez skorupę i znaleźć prosty przykład tego, co działa. Mam to, to proste i działa przez MyClass... #include <iostream> using std::cout; using std::endl; class MyClass { public: MyClass(); static void Callback(MyClass* instance, int x); private: int private_x; }; …

5
Usuwanie wskaźnika do const (T const *)
Mam podstawowe pytanie dotyczące wskaźników const. Nie wolno mi wywoływać funkcji niebędących składowymi stałymi przy użyciu wskaźnika do stałej. Jednak mogę to zrobić na wskaźniku const: delete p; Spowoduje to wywołanie destruktora klasy, która w istocie jest „metodą” inną niż stała. Dlaczego jest to dozwolone? Czy to tylko w celu …

6
Dlaczego nie jest stała operatora [] dla map STL?
Wymyślony przykład, aby odpowiedzieć na pytanie: void MyClass::MyFunction( int x ) const { std::cout << m_map[x] << std::endl } To się nie skompiluje, ponieważ operator [] nie jest stałą. Jest to niefortunne, ponieważ składnia [] wygląda bardzo czysto. Zamiast tego muszę zrobić coś takiego: void MyClass::MyFunction( int x ) const …
89 c++  constants 

3
Co to jest const void?
Opis std::is_voidstwierdza, że: Zapewnia stałą składową, która jest równa true, jeśli T jest typem void, const void, volatile void lub const volatile void. Więc co mogłoby być const void, lub volatile void? Ta odpowiedź stwierdza, że const voidzwracany typ byłby nieprawidłowy (jednak kompiluje się na VC ++ 2015) const void …
89 c++  c++11  c++14 

3
magia shared_ptr :)
Pan Lidström i ja pokłóciliśmy się :) Pan Lidström twierdzi, że konstrukcja shared_ptr<Base> p(new Derived);nie wymaga, aby Base miał wirtualnego destruktora: Armen Tsirunyan : "Naprawdę? Czy shared_ptr wyczyści się poprawnie? Czy mógłbyś w tym przypadku zademonstrować, jak można zaimplementować ten efekt?" Daniel Lidström : „ Shared_ptr używa własnego destruktora do …

4
Jak przechowywać różne argumenty szablonów?
Czy można w jakiś sposób zapisać pakiet parametrów do późniejszego wykorzystania? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public: Action(std::function<void(T...)> f, T... args) : f(f), args(args) {} void act(){ f(args); // <--- such that this will be possible } } Później: …




1
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 było już dozwolone, czy też potrzebne są zmiany …

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.