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.



4
Przeciążenie funkcji za pomocą szablonów
Próbuję zdefiniować funkcję za pomocą szablonów i chcę, aby nazwa typu była int lub anEnum (określony wyliczenie, które zdefiniowałem). Próbowałem następujące, ale nie powiodło się: template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> bool isFunction(const T &aVariable){} Staram się używać szablonów zamiast definiować …


2
Czy legalne jest przydzielanie nowego wskaźnika do działania?
Wskaźniki do funkcji nie są zwykłymi wskaźnikami danych, ponieważ nie mogą być przechowywane w pustym wskaźniku *. Niemniej jednak wydaje się, że mogę przechowywać kopię wskaźnika funkcji w pamięci dynamicznej (w gcc i clang), jak w poniższym kodzie. Czy taki kod jest zgodny ze standardem C ++, a może jest …
33 c++ 


3
Deklaracja C ++ i nawiasy - dlaczego?
Temat był wcześniej omawiany , ale to nie jest duplikat. Kiedy ktoś pyta o różnicę między decltype(a)i decltype((a)), jak zwykle odpowiedź brzmi - ajest to zmienna, (a)jest wyrazem. Uważam tę odpowiedź za niezadowalającą. Po pierwsze, ajest to także wyrażenie. Opcje wyrażenia podstawowego obejmują między innymi: ( wyrażenie ) wyrażenie id …

4
Dlaczego dwie klauzule używające tego samego typu są postrzegane w gcc jako niejednoznaczne
Mam dwie klasy podstawowe z wykorzystaniem klauzul class MultiCmdQueueCallback { using NetworkPacket = Networking::NetworkPacket; .... } class PlcMsgFactoryImplCallback { using NetworkPacket = Networking::NetworkPacket; .... } Następnie deklaruję klasę class PlcNetwork : public RouterCallback, public PlcMsgFactoryImplCallback, public MultiCmdQueueCallback { private: void sendNetworkPacket(const NetworkPacket &pdu); } kompilator następnie oznacza odniesienie błędu do …

2
Dziwne zachowanie z polami klasy podczas dodawania do std :: vector
Znalazłem bardzo dziwne zachowanie (na clang i GCC) w następującej sytuacji. Mam wektor, nodesz jednym elementem, instancją klasy Node. Następnie wywołuję funkcję, nodes[0]która dodaje nową wartość Nodedo wektora. Po dodaniu nowego węzła pola obiektu wywołującego są resetowane! Wydają się jednak wracać do normy po zakończeniu funkcji. Uważam, że jest to …

6
Czy brak elementu #include może spowodować uszkodzenie programu w czasie wykonywania?
Czy jest jakikolwiek przypadek, w którym pominięcie a #includespowodowałoby uszkodzenie oprogramowania w czasie wykonywania, podczas gdy kompilacja wciąż trwa? Innymi słowy, czy to możliwe? #include "some/code.h" complexLogic(); cleverAlgorithms(); i complexLogic(); cleverAlgorithms(); czy oba będą się pomyślnie budować, ale zachowają się inaczej?
31 c++ 

4
Jak nazywają się (…) w C i C ++?
Jednym z zastosowań ...jest do określenia zmiennej liczbie argumentów podmiotów w C i C ++. Jak się nazywa? Czy jest sklasyfikowany jako operator lub coś innego, gdy jest używany w ten sposób? Wszelkie inne szczegóły dotyczące ...? Edycja: Znam cel .... Pytam o jego nazwę i klasyfikację, które, mam nadzieję, …

6
Czy bezpiecznie jest zamienić dwa różne wektory w C ++, używając metody std :: vector :: swap?
Załóżmy, że masz następujący kod: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } Wyobraź sobie, że wektor nie jest std::stringjeszcze klasą: std::vector<Widget> WidgetVector; std::vector<Widget2> Widget2Vector; …
30 c++  c++11  vector  stdvector  swap 

4
Kopiowanie struktur z niezainicjowanymi elementami
Czy można skopiować strukturę, której niektórzy członkowie nie są zainicjowani? Podejrzewam, że jest to zachowanie nieokreślone, ale jeśli tak, sprawia, że ​​pozostawienie niezainicjowanych członków w strukturze (nawet jeśli ci członkowie nigdy nie są bezpośrednio wykorzystywani) jest dość niebezpieczne. Zastanawiam się więc, czy jest coś w standardzie, które to pozwala. Na …

2
Dlaczego `std :: string :: find ()` nie zwraca iteratora końcowego w przypadku awarii?
Uważam zachowanie std::string::find jest niespójne ze standardowymi kontenerami C ++. Na przykład std::map<int, int> myMap = {{1, 2}}; auto it = myMap.find(10); // it == myMap.end() Ale dla sznurka std::string myStr = "hello"; auto it = myStr.find('!'); // it == std::string::npos Dlaczego zamiast nieudanego myStr.find('!')powrotu ?myStr.end()std::string::npos Ponieważ std::stringjest to coś …


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.