Pytania otagowane jako c++11

Użyj tego znacznika do kodu, który musi zostać skompilowany jako C ++ 11 (nie używając żadnych funkcji wprowadzonych w C ++ 14 lub nowszej).

1
Inicjalizacja elementu członkowskiego podczas korzystania z konstruktora delegowanego
Zacząłem wypróbowywać standard C ++ 11 i znalazłem to pytanie, które opisuje, jak wywołać twojego ctora z innego ctora w tej samej klasie, aby uniknąć posiadania metody init lub podobnej. Teraz próbuję tego samego z kodem, który wygląda następująco: hpp: class Tokenizer { public: Tokenizer(); Tokenizer(std::stringstream *lines); virtual ~Tokenizer() {}; …

3
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 = {3,4}; auto d = …

2
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 nowego kodu. Zajmuję się również sporą ilością …
97 c++  memory  lambda  c++11 

6
C ++ przerywa wywoływane bez aktywnego wyjątku
Otrzymuję błąd C ++ z wątkami: terminate called without an active exception Aborted Oto kod: #include <queue> #include <thread> #include <mutex> #include <condition_variable> template<typename TYPE> class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &operator<<(TYPE &other) { std::unique_lock<std::mutex> mtx_lock(mtx); while(buffer.size()>=max_buffer_size) stop_if_full.wait(mtx_lock); buffer.push(std::move(other)); mtx_lock.unlock(); …


3
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 bez znaku). W przypadku jego braku godna uwagi jest funkcja stou …
96 c++  string  c++11  std 

6
Dlaczego std :: initializer_list nie jest językiem wbudowanym?
Dlaczego nie std::initializer_listma wbudowanego języka podstawowego? Wydaje mi się, że jest to dość ważna cecha C ++ 11, a mimo to nie ma własnego zarezerwowanego słowa kluczowego (lub czegoś podobnego). Zamiast tego initializer_listjest to po prostu klasa szablonu z biblioteki standardowej, która ma specjalne, niejawne mapowanie z nowej składni listy …

5
Czy mogę zainicjować listowo wektor typu tylko do przenoszenia?
Jeśli przekażę następujący kod przez moją migawkę GCC 4.7, spróbuje skopiować unique_ptrs do wektora. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Oczywiście to nie może działać, ponieważ std::unique_ptrnie można go skopiować: błąd: użycie usuniętej funkcji 'std :: unique_ptr …




2
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 [=]? zakładam, że std::function<T (T)> oznacza prototyp funkcji, …
94 c++  c++11  lambda 

8
C ++ lambda z przechwytywaniami jako wskaźnikiem funkcji
Bawiłem się lambdami C ++ i ich niejawną konwersją na wskaźniki funkcji. Moim początkowym przykładem było użycie ich jako wywołania zwrotnego dla funkcji ftw. Działa to zgodnie z oczekiwaniami. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct stat *sb, int …

8
Dlaczego makra preprocesora są złe i jakie są alternatywy?
Zawsze o to pytałem, ale nigdy nie otrzymałem naprawdę dobrej odpowiedzi; Myślę, że prawie każdy programista jeszcze przed napisaniem pierwszego „Hello World” zetknął się z wyrażeniem „makro nie powinno być nigdy używane”, „makro jest złe” i tak dalej, moje pytanie brzmi: dlaczego? Czy po tylu latach istnieje prawdziwa alternatywa dla …

4
Jak uzyskać czas trwania, jako int milli i sekund zmiennoprzecinkowych z <chrono>?
Próbuję użyć biblioteki chronograficznej dla timerów i czasów trwania. Chcę móc mieć Duration frameStart;(od początku aplikacji) i Duration frameDelta;(czas między klatkami) Muszę mieć frameDeltaczas trwania w milisekundach i sekundach zmiennoprzecinkowych. Jak to zrobić z nowymi &lt;chrono&gt;bibliotekami C ++ 11 ? Pracowałem nad tym i googlowałem (informacje są skąpe). Kod jest …
94 c++  c++11  timer  chrono 

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.