Вопросы с тегом «c++11»

Используйте этот тег для кода, который должен компилироваться как C ++ 11 (без использования каких-либо функций, представленных в C ++ 14 или более поздних версиях).

6
C ++ terminate вызывается без активного исключения
Я получаю ошибку C ++ при потоковой передаче: terminate called without an active exception Aborted Вот код: #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); …

3
Явный тип возврата лямбды
Когда я пытаюсь скомпилировать этот код (VS2010), я получаю следующую ошибку: 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 …

15
Есть ли у C ++ 11 свойства стиля C #?
В C # есть хороший синтаксический сахар для полей с геттером и сеттером. Кроме того, мне нравятся автоматически реализованные свойства, которые позволяют мне писать public Foo foo { get; private set; } На C ++ мне нужно написать private: Foo foo; public: Foo getFoo() { return foo; } Есть ли …
93 c#  c++  class  c++11 

2
Как будет выглядеть расширенный список инициализаторов std :: map?
Если он вообще существует, как бы выглядел std::mapрасширенный список инициализаторов? Я пробовал несколько комбинаций ... ну, всего, что мог придумать с GCC 4.4, но не нашел ничего компилированного.

3
Как обеспечить соблюдение семантики перемещения при росте вектора?
У меня есть std::vectorобъекты определенного класса A. Класс нетривиален и имеет конструкторы копирования и перемещение конструктор определены. std::vector<A> myvec; Если я заполню вектор Aобъектами (например, используя myvec.push_back(a)), вектор будет увеличиваться в размере, используя конструктор копирования A( const A&)для создания новых копий элементов в векторе. Могу ли я каким-то образом добиться, …

4
Передача shared_ptr <Derived> как shared_ptr <Base>
Каков наилучший способ передать a shared_ptrпроизводного типа функции, которая принимает shared_ptra базового типа? Я обычно передаю shared_ptrs по ссылке, чтобы избежать ненужной копии: int foo(const shared_ptr&lt;bar&gt;&amp; ptr); но это не сработает, если я попытаюсь сделать что-то вроде int foo(const shared_ptr&lt;Base&gt;&amp; ptr); ... shared_ptr&lt;Derived&gt; bar = make_shared&lt;Derived&gt;(); foo(bar); Я мог бы …


3
Когда частный конструктор не является частным конструктором?
Допустим, у меня есть тип, и я хочу сделать его конструктор по умолчанию закрытым. Я пишу следующее: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a private constructor of class 'C' (clang++) // error …

6
error :: make_unique не является членом std
Я пытаюсь скомпилировать следующую программу пула потоков, опубликованную в обзоре кода, чтобы проверить ее. /codereview/55100/platform-independant-thread-pool-v4 Но я получаю ошибки 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 …

4
Должен ли стиль синтаксиса конечного возвращаемого типа стать по умолчанию для новых программ на C ++ 11? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить с помощью фактов и цитат, отредактировав этот пост . Закрыт 3 года назад . Уточните этот вопрос C ++ 11 поддерживает новый синтаксис …

2
Когда лишние круглые скобки влияют, кроме приоритета оператора?
Круглые скобки в C ++ используются во многих местах: например, в вызовах функций и выражениях группировки для переопределения приоритета операторов. Помимо недопустимых дополнительных круглых скобок (например, вокруг списков аргументов вызова функций), общее, но не абсолютное правило C ++ состоит в том, что лишние круглые скобки никогда не повредят : 5.1 …

4
cc1plus: ошибка: нераспознанный параметр командной строки «-std = c ++ 11» с g ++
Я пытаюсь скомпилировать, используя g++и флаги -std=c++11или c++0x. Однако я получаю эту ошибку cc1plus: error: unrecognized command line option "-std=c++11" g ++ --version g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO …

5
Почему лямбда имеет размер 1 байт?
Я работаю с памятью некоторых лямбд в C ++, но меня немного озадачивает их размер. Вот мой тестовый код: #include &lt;iostream&gt; #include &lt;string&gt; int main() { auto f = [](){ return 17; }; std::cout &lt;&lt; f() &lt;&lt; std::endl; std::cout &lt;&lt; &amp;f &lt;&lt; std::endl; std::cout &lt;&lt; sizeof(f) &lt;&lt; std::endl; } Вы …
90 c++  c++11  lambda  c++14  sizeof 

3
Как сделать условное определение типа в C ++
Я пытаюсь сделать что-то вроде этого: #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; } но я получаю эту ошибку: error: missing binary operator before token "(" Как правильно …
90 c++  c++11 

2
Ошибка при использовании внутриклассовой инициализации нестатического члена данных и конструктора вложенного класса
Следующий код довольно тривиален, и я ожидал, что он будет нормально компилироваться. struct A { struct B { int i = 0; }; B b; A(const B&amp; _b = B()) : b(_b) {} }; Я тестировал этот код с g ++ версии 4.7.2, 4.8.1, clang ++ 3.2 и 3.3. Помимо …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.