Als «c++» getaggte Fragen

C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entwickelt und hat eine ähnliche Syntax, ist aber jetzt eine völlig andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. Verwenden Sie ein versionierungsspezifisches Tag für Fragen zu einer bestimmten Standardversion [C ++ 11], [C ++ 14], [C ++ 17] oder [C ++ 20] usw.



1
Darf man einem Nullzeiger eine Null hinzufügen?
Ich weiß, dass Zeigerarithmetik für Nullzeiger nicht zulässig ist. Aber stell dir vor, ich habe so etwas: class MyArray { int *arrayBegin; // pointer to the first array item, NULL for an empty array unsigned arraySize; // size of the array, zero for an empty array public: int *begin() const …

1
Der Versuch, Vorlagen und Namenssuche zu verstehen
Ich versuche die folgenden Codefragmente zu verstehen Snippet # 1 template <typename T> struct A { static constexpr int VB = T::VD; }; struct B : A<B> { }; Weder gcc9 noch clang9 werfen hier einen Fehler. F. Warum wird dieser Code kompiliert? Instanziieren wir nicht, A<B>wenn wir von B …



1
Wie kann eine Änderung an Array-Daten verhindert werden?
Angenommen, ich habe eine Klasse, die so aussieht (dies ist nur ein Beispiel): class A { double *ptr; public: A() : ptr( new double[100] ) {} A( const A &other ) { other.ptr[7] = 15; } void doNotChangeMyData() const { ptr[43] = 14; } void changeMyData() { ptr[43] = 14; …
9 c++  const 

1
Wie kann std :: lock_guard schneller sein als std :: mutex :: lock ()?
Ich habe mit einem Kollegen über lock_guard gestritten, und er schlug vor, dass lock_guard aufgrund der Kosten für die Instanziierung und Unistantiierung der Klasse lock_guard wahrscheinlich langsamer als mutex :: lock () / mutex :: refresh () ist. Dann habe ich diesen einfachen Test erstellt und überraschenderweise ist die Version …
9 c++  mutex 

2
Kann ich einen benutzerdefinierten Allokator für std :: array für sichere kryptografische Schlüssel verwenden?
Ich weiß, dass std::arrayder Stapel vollständig zugeordnet ist, aber diese Frage ist durch Sicherheitsbedenken motiviert, die zwei Dinge erfordern: Die Daten in std::arraywerden bei Zerstörung auf Null gesetzt oder zufällig ausgewählt Die eingehenden Daten std::arraywerden gesperrt , sodass sie weder beim Absturz noch im Swap-Speicher auf die Festplatte übertragen werden …

4
Von der natürlichen Sprache zum C ++ - Ausdruck
Zuordnung: Übersetzen Sie die folgenden Ausdrücke in natürlicher Sprache in C ++ - Ausdrücke. Angenommen, alle Variablen sind nicht negative Zahlen oder Boolesche Werte (mit dem Wert true oder false). Natürliche Sprache: Entweder a und b sind beide falsch oder c ist wahr, aber nicht beide. Meine Lösung: (a==0 && …
9 c++  logic 


1
Ist es parallel sicher, concurrency :: concurrent_vector :: push_back aufzurufen, während über diesen concurrent_vector in einem anderen Thread iteriert wird?
push_back , begin , end werden in https://docs.microsoft.com/en-us/cpp/parallel/concrt/reference/concurrent-vector-class?view=vs-2019#push_back als gleichzeitig sicher beschrieben Der folgende Code bestätigt jedoch. Wahrscheinlich, weil das Element hinzugefügt, aber noch nicht initialisiert wurde. struct MyData { explicit MyData() { memset(arr, 0xA5, sizeof arr); } std::uint8_t arr[1024]; }; struct MyVec { concurrency::concurrent_vector<MyData> v; }; auto vector_pushback(MyVec &vec) …

3
foo (nichtig) vs foo (nichtig *)
Gibt es funktional und syntaktisch einen Unterschied zwischen einer Funktion, deren Prototyp ist int foo(void)und int foo(void *)? Ich kenne den Unterschied zwischen zum Beispiel int bar(int)und int bar(int *)- einer von ihnen sucht nach einem int und der andere sucht nach einem int-Zeiger. Hat voidverhalten sich genauso?


1
So rufen Sie Flatter-Engine-Methoden aus einem anderen Thread auf
Ich benutze Flutter Desktop für Linux. Ich rufe eine Methode namens aufMarkTextureFrameAvailable , die eine Textur markieren soll, die von der Engine erneut gerendert werden soll. Da ich einen Videoplayer programmiere, muss ich über MarkTextureFrameAvailableden Thread des Players aufrufen . Das Problem ist, dass die Engine mich zwingt, MarkTextureFrameAvailable(und jede …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.