Jak mogę wymusić, Taby parametr szablonu był podklasą określonej klasy Baseclass? Coś takiego: template <class T : Baseclass> void function(){ T *object = new T(); }
Jak mogę wymusić, Taby parametr szablonu był podklasą określonej klasy Baseclass? Coś takiego: template <class T : Baseclass> void function(){ T *object = new T(); }
Czy można poinstruować kompilator GNU c ++, aby zatrzymał się po znalezieniu 5 błędów? Nie mogę znaleźć tego w dokumentacji.
Czy w C ++ operator?: Jest szybszy niż instrukcje if () ... else? Czy są między nimi różnice w skompilowanym kodzie?
Pytanie jest pogrubione u dołu, problem jest również podsumowany fragmentem kodu destylacji pod koniec. Próbuję ujednolicić mój system typów (system typów robi do i od typu do ciągu) w jeden komponent (zgodnie z definicją Lakos). Używam boost::array, boost::variantoraz boost::mplw celu...
Mam listę liczb całkowitych, które muszę powtórzyć, ale tablica jest nieodpowiednia. Jakie są różnice między vectorsi i listsczy jest coś, co muszę wiedzieć, zanim wybiorę typ? Żeby było jasne, przeczytałem dokumentację QT, ale to jest zakres tego, co wiem: QList<T>,...
Pracuję z wieloma kodami obliczeniowymi napisanymi w C ++ z myślą o wysokiej wydajności i niskim zużyciu pamięci. Używa (głównie vector) kontenerów STL i iteruje je prawie w każdej funkcji. Kod iteracyjny wygląda następująco: for (int i = 0; i < things.size(); ++i) { // ... } ale...
W PHP i C # stałe można zainicjować tak, jak są zadeklarowane: class Calendar3 { const int value1 = 12; const double value2 = 0.001; } Mam następującą deklarację C ++ funktora, który jest używany z inną klasą do porównania dwóch wektorów matematycznych: struct equal_vec { bool operator()...
struct X { X() { std::cout << "X()\n"; } X(int) { std::cout << "X(int)\n"; } }; const int answer = 42; int main() { X(answer); } Spodziewałbym się, że to też się wydrukuje X(int), ponieważ X(answer);można to zinterpretować jako odlew zint do Xlub w ogóle nic, ponieważ...
Jest wątek w sekcji komentarzy w tym poście na temat korzystania std::vector::reserve()Vs. std::vector::resize(). Oto oryginalny kod: void MyClass::my_method() { my_member.reserve(n_dim); for(int k = 0 ; k < n_dim ; k++ ) my_member[k] = k ; } Uważam, że aby wpisać elementy w elemencie...
class Person { public: int age; }; Chcę przechowywać obiekty klasy Person w kolejce priorytetowej. priority_queue< Person, vector<Person>, ??? > Myślę, że muszę zdefiniować klasę do porównania, ale nie jestem tego pewien. Kiedy piszemy, priority_queue< int,...
Rozważmy następujący krótki program w C ++: #include <iostream> class B { public: operator bool() const { return false; } }; class B2 : public B { public: operator int() { return 5; } }; int main() { B2 b; std::cout << std::boolalpha << (bool)b <<...
Cplusplus.com shared_ptrstrona nazywa się rozróżnienie między pusty std::shared_ptr a wartość null shared_ptr . Strona cppreference.com nie wyjaśnia wyraźnie tego rozróżnienia, ale nullptrw opisie std::shared_ptrzachowania używa zarówno słowa „pusty”, jak i porównania . Czy jest różnica między...
W boost / mpl / assert.hpp widziałem coś takiego: template<class Pred> struct eval_assert { typedef typename extract_assert_pred<Pred>::type P; typedef typename P::type p_type; typedef typename ::boost::mpl::if_c<p_type::value, AUX778076_ASSERT_ARG(assert<false>),...
To nie jest kwestia funkcji lambda, wiem, że mogę przypisać lambdę do zmiennej. Jaki jest sens pozwalania nam deklarować, ale nie definiować funkcji w kodzie? Na przykład: #include <iostream> int main() { // This is illegal // int one(int bar) { return 13 + bar; } // This is legal,...
Obecnie pracuję nad projektem i mam następujący problem. Mam metodę C ++, którą chcę pracować na dwa różne sposoby: void MyFunction() { foo(); bar(); foobar(); } void MyFunctionWithABonus() { foo(); bar(); doBonusStuff(); foobar(); } I nie chciałbym powielać swojego kodu, ponieważ...
Różnice tkwią w zwracanej wartości, podając dane wejściowe dotyczące rozstrzygania remisów, jak sądzę, na przykład ten kod : int main() { std::cout.precision(100); double input = std::nextafter(0.05, 0.0) / 0.1; double x1 = floor(0.5 + input); double x2 = round(input); std::cout <<...
Jest stary post z prośbą o konstrukcję, dla której sizeofwróci 0. Istnieje kilka odpowiedzi z wysokimi wynikami od użytkowników o wysokiej reputacji, którzy twierdzą, że standardowo żaden typ ani zmienna nie może mieć rozmiaru 0. I zgadzam się z tym w 100%. Jest jednak nowa odpowiedź, która...
Przechodzę w kierunku C ++ 11 z C ++ 98 i zapoznałem się ze autosłowem kluczowym. Zastanawiałem się, dlaczego musimy jawnie zadeklarować, autoczy kompilator może automatycznie wydedukować typ. Wiem, że C ++ jest językiem silnie typizowanym i jest to reguła, ale czy nie można było osiągnąć tego...
Czytałem, że w C ++ 17 możemy inicjalizować zmienne w iftakich instrukcjach if (int length = 2; length == 2) //execute something Zamiast int length = 2; if (length == 2) //do something Mimo że jest krótszy, wpływa na czytelność kodu (szczególnie dla osób, które nie znają tej nowej...
Z pewnością czegoś brakuje, ale nie rozumiem, dlaczego to się kompiluje (zarówno z g ++, jak i clang ++): struct A { }; struct B { }; int main() { A a(B); } Przede wszystkim Bjest typem ... a nie wartością. Jak mam interpretować ten