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.

2
Czy deklaracja może wpływać na przestrzeń nazw std?
#include <iostream> #include <cmath> /* Intentionally incorrect abs() which seems to override std::abs() */ int abs(int a) { return a > 0? -a : a; } int main() { int a = abs(-5); int b = std::abs(-5); std::cout<< a << std::endl << b << std::endl; return 0; } Spodziewałem się, …
96 c++  std  reserved 

6
Dlaczego std :: initializer_list nie jest językiem wbudowanym?
Dlaczego nie std::initializer_listma wbudowanego języka podstawowego? Wydaje mi się, że jest to dość ważna cecha C ++ 11, a mimo to nie ma własnego zarezerwowanego słowa kluczowego (lub czegoś podobnego). Zamiast tego initializer_listjest to po prostu klasa szablonu z biblioteki standardowej, która ma specjalne, niejawne mapowanie z nowej składni listy …

8
Nie znaleziono operatora == podczas porównywania struktur w C ++
Porównując dwa wystąpienia następującej struktury, otrzymuję błąd: struct MyStruct1 { MyStruct1(const MyStruct2 &_my_struct_2, const int _an_int = -1) : my_struct_2(_my_struct_2), an_int(_an_int) {} std::string toString() const; MyStruct2 my_struct_2; int an_int; }; Błąd: błąd C2678: binarny '==': nie znaleziono operatora, który przyjmuje lewostronny operand typu 'myproj :: MyStruct1' (lub nie ma akceptowalnej …

2
Przykład generowania UUID przy użyciu Boost w C ++
Chcę generować tylko losowe identyfikatory UUID, ponieważ ważne jest, aby instancje w moim programie miały unikalne identyfikatory. Zajrzałem do Boost UUID , ale nie mogę wygenerować UUID, ponieważ nie rozumiem, której klasy i metody użyć. Byłbym wdzięczny, gdyby ktoś dał mi przykład, jak to osiągnąć.
96 c++  boost  uuid  boost-uuid 

2
Jak zwrócić inteligentne wskaźniki (shared_ptr), przez odniesienie lub wartość?
Powiedzmy, że mam klasę z metodą, która zwraca shared_ptr. Jakie są możliwe zalety i wady zwrotu na podstawie referencji lub wartości? Dwie możliwe wskazówki: Wczesne niszczenie obiektów. Jeśli shared_ptrzwrócę odwołanie by (const), licznik odwołań nie zostanie zwiększony, więc ponoszę ryzyko usunięcia obiektu, gdy wyjdzie on poza zakres w innym kontekście …

5
Czy mogę zainicjować listowo wektor typu tylko do przenoszenia?
Jeśli przekażę następujący kod przez moją migawkę GCC 4.7, spróbuje skopiować unique_ptrs do wektora. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Oczywiście to nie może działać, ponieważ std::unique_ptrnie można go skopiować: błąd: użycie usuniętej funkcji 'std :: unique_ptr …



6
Operator tyldy w C
Widziałem operator tyldy używany w algorytmie mieszania ELF i jestem ciekaw, co on robi. (Kod pochodzi z Eternally Confused ). unsigned elf_hash ( void *key, int len ) { unsigned char *p = key; unsigned h = 0, g; int i; for ( i = 0; i < len; i++ …
96 c++  c  operators 

3
Co to jest „tupot pamięci”?
Właśnie natknąłem się na ten wpis na blogu, który wspomina o „tupaniu pamięci”: program w C ++, który jest w stanie z łatwością tupać pamięć (coś, o czym prawdopodobnie nigdy nie słyszałeś, jeśli urodziłeś się w świecie kodu zarządzanego). Właściwie nigdy o tym nie słyszałem! Więc co to jest, tupot …

6
Po co używać std :: make_unique w C ++ 17?
O ile rozumiem, wprowadzono C ++ 14 std::make_unique, ponieważ w wyniku nieokreślenia kolejności oceny parametrów było to niebezpieczne: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Wyjaśnienie: jeśli ocena najpierw przydzieli pamięć dla surowego wskaźnika, a następnie wywoła g()i wyjątek zostanie zgłoszony przed std::unique_ptrkonstrukcją, wtedy nastąpi wyciek pamięci). Dzwonienie std::make_uniquebyło sposobem na …
96 c++  c++17  unique-ptr 

13
Jak obliczyć różnicę czasu w C ++
Jaki jest najlepszy sposób obliczenia różnicy czasu w C ++? Odliczam czas wykonywania programu, więc interesują mnie milisekundy. Jeszcze lepiej, sekundy. Milisekundy ... Zaakceptowana odpowiedź działa, ale musi zawierać ctime lub time.h, jak zaznaczono w komentarzach.
96 c++ 

1
Jakie jest znaczenie terminu „darmowa funkcja” w C ++?
Czytając dokumentację do boost :: test, natknąłem się na termin „darmowa funkcja”. Rozumiem, że wolna funkcja to dowolna funkcja, która nic nie zwraca (jej typ zwracania to void). Ale po dalszej lekturze wydaje się, że wolne funkcje również nie przyjmują żadnych argumentów. Ale nie jestem pewien. To wszystko są moje …
96 c++ 

7
M_PI współpracuje z math.h, ale nie z cmath w programie Visual Studio
Używam Visual Studio 2010. Czytałem, że w C ++ lepiej jest używać <cmath>niż <math.h>. Ale w programie próbuję pisać (aplikacja konsoli Win32, pusty projekt) jeśli napiszę: #define _USE_MATH_DEFINES #include <math.h> kompiluje się, gdy piszę #define _USE_MATH_DEFINES #include <cmath> to zawodzi błąd C2065: „M_PI”: niezadeklarowany identyfikator Jest to normalne? Czy to …


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.