Pytania oznaczone «c++11»

98
Dlaczego kopiujemy, a potem przenosimy?

Widziałem gdzieś kod, w którym ktoś zdecydował się skopiować obiekt, a następnie przenieść go do członka danych klasy. Wprawiło mnie to w zakłopotanie, ponieważ myślałem, że celem przeniesienia jest uniknięcie kopiowania. Oto przykład: struct S { S(std::string str) : data(std::move(str))...

97
Kiedy używać inicjatora w nawiasach?

W C ++ 11 mamy nową składnię do inicjowania klas, która daje nam dużą liczbę możliwości inicjalizacji zmiennych. { // Example 1 int b(1); int a{1}; int c = 1; int d = {1}; } { // Example 2 std::complex<double> b(3,4); std::complex<double> a{3,4}; std::complex<double> c...

97
Implementacja lambda i model pamięci w C ++ 11

Chciałbym uzyskać informacje o tym, jak poprawnie myśleć o domknięciach std::functionw C ++ 11 oraz o tym, jak są one implementowane i jak obsługiwana jest pamięć. Chociaż nie wierzę w przedwczesną optymalizację, mam zwyczaj uważnego rozważania wpływu moich wyborów na wydajność podczas pisania...

96
Dlaczego nie ma std :: stou?

C ++ 11 dodał kilka nowych funkcji konwersji ciągów: http://en.cppreference.com/w/cpp/string/basic_string/stoul Zawiera stoi (ciąg do wartości typu int), stol (ciąg do długości długiej), stoll (ciąg do długości długiej bez znaku), stoul (ciąg do długości bez znaku), stoull (ciąg do długości...

94
Co oznacza [=] w C ++?

Chcę wiedzieć, co [=]robi? Oto krótki przykład template <typename T> std::function<T (T)> makeConverter(T factor, T offset) { return [=] (T input) -> T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); Jak kod działałby z []zamiast...