Pytania oznaczone «c++»

13
Skopiować inicjalizację listy? Dlaczego to się kompiluje?

Korzystam z Microsoft Visual Studio Community 2019, V16.5.2. Chcę przetestować inicjalizację listy Zobacz następujący program testowy: #include <string> void foo(std::string str) {} int main() { foo( {"str1", "str2"} ); return 0; } Kompiluje się bez błędów i ostrzeżeń....

13
Jak działa implementacja cull ntrptr?

Jestem ciekawy, jak nullptrdziała. Normy N4659 i N4849 mówią: musi mieć typ std::nullptr_t; nie możesz wziąć jego adresu; można go bezpośrednio przekonwertować na wskaźnik, a wskaźnik na element członkowski; sizeof(std::nullptr_t) == sizeof(void*); jego konwersja na booljest false; jego wartość...

12
Inicjalizacja wektora atomowego

Rozważać: void foo() { std::vector<std::atomic<int>> foo(10); ... } Czy zawartość foo jest teraz aktualna? Czy też muszę je przejrzeć i zainicjować? Sprawdziłem Godbolt i wydaje się, że jest w porządku, jednak standard wydaje się być bardzo zagmatwany w tym punkcie. Konstruktor...

12
Wydajna stabilna suma uporządkowanych liczb

Mam dość długą listę liczb zmiennoprzecinkowych dodatnich ( std::vector<float>rozmiar ~ 1000). Liczby są sortowane według malejącej kolejności. Jeśli sumuję je zgodnie z kolejnością: for (auto v : vec) { sum += v; } Myślę, że mogę mieć problem ze stabilnością numeryczną, ponieważ blisko...

12
Alias ​​publiczny dla typu niepublicznego

Zastanawiam się, czy to jest poprawne C ++: class Test { struct PrivateInner { PrivateInner(std::string const &str) { std::cout << str << "\n"; } }; public: using PublicInner = PrivateInner; }; //Test::PrivateInner priv("Hello world"); // Ok, private so we can't use...

12
C ++ 20 definicja poza klasą w klasie szablonów

Aż do standardu C ++ 20 C ++, gdy chcieliśmy zdefiniować operatora spoza klasy, który korzysta z niektórych prywatnych członków klasy szablonu, używamy konstrukcji podobnej do tej: template <typename T> class Foo; template <typename T> constexpr bool operator==(T lhs, const...