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.


4
Eindeutiger Zeiger - Warum wird der Destruktor dreimal aufgerufen?
Ich habe eine Methode, die ein Objekt nach Wert zurückgibt. Die Methode stammt aus einer Bibliothek, über die ich keine Kontrolle habe. Für die weitere Bearbeitung des Objekts möchte ich weiterhin mit einem unique_ptr an diesem Objekt arbeiten. Hier ist ein Beispiel: #include <iostream> #include <memory> class Bla { public: …
8 c++  unique-ptr 


2
Wie kann ich dafür sorgen, dass meine Größe der Summenstruktur mit einem leeren Parameterpaket funktioniert?
Ich habe diese variable Struktur zur Bestimmung der Summe der Größe aller übergebenen Typen: template <typename U, typename... T> struct TotalSizeOf : std::integral_constant<size_t, sizeof(U) + TotalSizeOf<T...>::value> {}; template <typename U> struct TotalSizeOf<U> : std::integral_constant<size_t, sizeof(U)> {}; Verwendungszweck: TotalSizeOf<double, int, char>::value Die Frage ist, wie ich dies ändere, damit es an …
8 c++  c++14 


4
Unterklassenadresse gleich Adresse der virtuellen Basisklasse?
Wir alle wissen, dass bei Verwendung einer einfachen Einzelvererbung die Adresse einer abgeleiteten Klasse mit der Adresse der Basisklasse übereinstimmt. Mehrfachvererbung macht das unwahr. Macht die virtuelle Vererbung das auch falsch? Mit anderen Worten, ist der folgende Code korrekt: struct A {}; struct B : virtual A { int i; …


3
Wie man das Problem "Lesen der Nicht-Constexpr-Variablen 'a' ist in einem konstanten Ausdruck nicht erlaubt" mit boost.hana löst
Ich verwende c ++ 17 mit Boost.hana, um einige Metaprogrammierprogramme zu schreiben. Ein Problem, das mir aufgefallen ist, ist, welche Art von Ausdruck in einem constexpr-Kontext wie static_assert verwendet werden kann. Hier ist ein Beispiel: #include <boost/hana.hpp> using namespace boost::hana::literals; template <typename T> class X { public: T data; constexpr …
8 c++  boost  boost-hana 


7
Ist es möglich, rekursiv ganzzahlige Vorlagenparameter in C ++ abzugleichen?
Ich habe folgendes Problem. Ich definiere einen N-dimensionalen Vektor als solchen #include <vector> #include <utility> #include <string> template <int N, typename T> struct NVector{ typedef std::vector<typename NVector<N-1,T>::type> type; }; template <typename T> struct NVector<1,T> { typedef std::vector<T> type; }; Ich möchte eine Funktion Map höherer Ordnung schreiben , die die …


5
Wie zwischen assert () und static_assert () zu versenden, hängt davon ab, ob im constexpr-Kontext?
In C ++ 11 constexpr-Funktionen ist eine zweite Anweisung wie eine assert()nicht möglich. A static_assert()ist in Ordnung, würde aber nicht funktionieren, wenn die Funktion als "normale" Funktion aufgerufen wird. Der Komma-Operator könnte kommen, um wrto zu helfen. Das assert()ist aber hässlich und einige Tools spucken Warnungen darüber aus. Betrachten Sie …

1
Wie wähle ich zwischen std :: redu und std :: accumulate?
std::accumulateund std::reducemacht fast das gleiche. Zusammenfassung von std::reducesagt alles: similar to `std::accumulate`, except out of order In vielen Fällen sollten diese Funktionen das gleiche Endergebnis liefern und die gleiche Gesamtfunktionalität aufweisen. Es ist offensichtlich, dass Sie mit einer sehr hohen Lastberechnung usw. experimentieren können, std::reduceum eine Parrelisierung durchzuführen. Dh. Was …

1
Das Deklarieren eines const-Objekts in C ++ erfordert einen benutzerdefinierten Standardkonstruktor. Wenn ich eine veränderbare Mitgliedsvariable habe, warum nicht?
In C ++ benötigen constwir einen benutzerdefinierten Standardkonstruktor , um ein Objekt einer Klasse mit einer Mitgliedsvariablen als zu deklarieren . Der folgende Code veranschaulicht dies. class Some { int value; }; int main() { // error: default initialization of an object of const type 'const Some' // without a …
8 c++  clang++ 

1
Swig C ++: Schnittstellenvektor <Klassenobjekt *>
Grundsätzlich versuche ich, ein Tupel / eine Liste zu haben, die ein Wörterbuch mit verschiedenen Datentypen von Werten (float / int / bool / char / list) in Python enthält. Ich erhalte dies aus dem folgenden Code: (&lt;f_p.Bunch; proxy of &lt;Swig Object of type 'Bunch *' at 0x7f4954bdde10&gt; &gt;, &lt;f_p.Bunch; …
8 c++  c++11  c++14  swig 

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.