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).


6
Obliczanie długości łańcucha C w czasie kompilacji. Czy to naprawdę constexpr?
Próbuję obliczyć długość literału ciągu w czasie kompilacji. Aby to zrobić, używam następującego kodu: #include <cstdio> int constexpr length(const char* str) { return *str ? 1 + length(str + 1) : 0; } int main() { printf("%d %d", length("abcd"), length("abcdefgh")); } Wszystko działa zgodnie z oczekiwaniami, program wypisuje 4 i …

15
Czy C ++ 11 ma właściwości w stylu C #?
W C # jest ładny cukier składniowy dla pól z getter i setter. Ponadto podoba mi się auto-implementowane właściwości, które pozwalają mi pisać public Foo foo { get; private set; } W C ++ muszę pisać private: Foo foo; public: Foo getFoo() { return foo; } Czy jest jakaś taka …
93 c#  c++  class  c++11 

3
Jawny zwracany typ Lambda
Kiedy próbuję skompilować ten kod (VS2010), pojawia się następujący błąd: error C3499: a lambda that has been specified to have a void return type cannot return a value void DataFile::removeComments() { string::const_iterator start, end; boost::regex expression("^\\s?#"); boost::match_results<std::string::const_iterator> what; boost::match_flag_type flags = boost::match_default; // Look for lines that either start with …

3
Jak wymusić semantykę ruchu, gdy wektor rośnie?
Mam std::vectorobiekty określonej klasy A. Klasa jest nietrywialna i ma zdefiniowane konstruktory kopiujące i przenoszące. std::vector<A> myvec; Jeśli wypełnię wektor Aobiektami (używając np. myvec.push_back(a)), Wektor będzie się powiększał, używając konstruktora kopiującego A( const A&)do tworzenia nowych kopii elementów w wektorze. Czy mogę w jakiś sposób wymusić, że Azamiast tego używany …

4
Przekazywanie shared_ptr <Derived> jako shared_ptr <Base>
Jaka jest najlepsza metoda przekazywania a shared_ptrtypu pochodnego do funkcji, która przyjmuje shared_ptrtyp podstawowy? Generalnie przekazuję shared_ptrje jako odniesienie, aby uniknąć niepotrzebnych kopii: int foo(const shared_ptr&lt;bar&gt;&amp; ptr); ale to nie działa, jeśli spróbuję zrobić coś takiego int foo(const shared_ptr&lt;Base&gt;&amp; ptr); ... shared_ptr&lt;Derived&gt; bar = make_shared&lt;Derived&gt;(); foo(bar); mógłbym użyć foo(dynamic_pointer_cast&lt;Base, Derived&gt;(bar)); …


4
Czy styl składni końcowego typu zwracanego powinien stać się domyślnym dla nowych programów w języku C ++ 11? [Zamknięte]
Zamknięte . To pytanie jest oparte na opinii . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć, podając fakty i cytaty, edytując ten post . Zamknięte 3 lata temu . Popraw to pytanie C ++ 11 obsługuje nową składnię funkcji: auto func_name(int …

6
błąd :: make_unique nie jest członkiem „std”
Próbuję skompilować następujący program puli wątków opublikowany w przeglądzie kodu, aby go przetestować. /codereview/55100/platform-independant-thread-pool-v4 Ale otrzymuję błędy threadpool.hpp: In member function ‘std::future&lt;decltype (task((forward&lt;Args&gt;)(args)...))&gt; threadpool::enqueue_task(Func&amp;&amp;, Args&amp;&amp; ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique&lt;task_package_impl&lt;R, decltype(bound_task)&gt;&gt; (std::move(bound_task), std::move(promise)); ^ threadpool.hpp:94:81: error: expected primary-expression before ‘&gt;’ token …

3
Constexpr a makra
Gdzie powinienem preferować używanie makr, a gdzie powinienem preferować constexpr ? Czy nie są w zasadzie takie same? #define MAX_HEIGHT 720 vs constexpr unsigned int max_height = 720;
92 c++  c++11  macros  constexpr 

2
Kiedy dodatkowe nawiasy mają wpływ, inny niż pierwszeństwo operatorów?
Nawiasy w C ++ są używane w wielu miejscach: np. W wywołaniach funkcji i wyrażeniach grupujących, aby przesłonić pierwszeństwo operatorów. Oprócz niedozwolonych dodatkowych nawiasów (takich jak listy argumentów wywołań funkcji), ogólna - ale nie bezwzględna - zasada C ++ mówi, że dodatkowe nawiasy nigdy nie zaszkodzą : 5.1 Wyrażenia podstawowe …




3
Jak utworzyć warunkową definicję typu w C ++
Próbuję zrobić coś takiego: #include &lt;iostream&gt; #include &lt;random&gt; typedef int Integer; #if sizeof(Integer) &lt;= 4 typedef std::mt19937 Engine; #else typedef std::mt19937_64 Engine; #endif int main() { std::cout &lt;&lt; sizeof(Integer) &lt;&lt; std::endl; return 0; } ale otrzymuję ten błąd: error: missing binary operator before token "(" Jak mogę poprawnie utworzyć warunkową …
90 c++  c++11 

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.