Запитання з тегом «c++11»

Використовуйте цей тег для коду, який повинен скласти як C ++ 11 (не використовуючи жодних функцій, введених у C ++ 14 або новіших версіях).


17
Як увімкнути підтримку C ++ 11 / C ++ 0x у Eclipse CDT?
Затемнення 3.7.1 CDT 1.4.1 GCC 4.6.2 Це приклад фрагмента коду C ++ 11: auto text = std::unique_ptr<char[]>(new char[len]); Редактор Eclipse скаржиться на: Function 'unique_ptr' could not be resolved Компіляція Makefile працює чудово. Як змусити Eclipse перестати скаржитися на подібні помилки?

8
Проходження захоплення лямбда як вказівник функції
Чи можливо передавати лямбда-функцію як функцію вказівника? Якщо так, я повинен робити щось неправильно, тому що я отримую помилку компіляції. Розглянемо наступний приклад using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int x = 5; Decide greaterThanThree{ [x](){ …

2
Чи може сучасний C ++ отримати продуктивність безкоштовно?
Іноді стверджується, що C ++ 11/14 може підвищити продуктивність навіть при простому компілюванні коду C ++ 98. Виправдання, як правило, узгоджується з семантикою переміщення, оскільки в деяких випадках конструктори rvalue автоматично генеруються або тепер є частиною STL. Тепер мені цікаво, чи раніше ці випадки фактично вже розглядалися RVO чи подібними …

7
Навіщо використовувати функції початку та закінчення, які не є членами, у C ++ 11?
Кожен стандартний контейнер має beginі endспосіб повернення ітераторів для цього контейнера. Однак, C ++ 11, очевидно, запровадив вільні функції, які називаються std::beginі std::endякі викликають функції beginта endчлен. Отже, замість того, щоб писати auto i = v.begin(); auto e = v.end(); ти напишеш auto i = std::begin(v); auto e = std::end(v); …

3
невизначене посилання на 'std :: cout'
Чи повинен це бути приклад: #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } Він видає помилку: gcc -c main.cpp gcc -o edit main.o main.o: In function `main': main.cpp:(.text+0xa): undefined reference to `std::cout' main.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char,std::char_traits<char> >& std::operator<< <std::char_traits<char>>(std::basic_ostream<char, std::char_traits<char> >&, char const*)' main.o: …
197 c++  c++11  gcc  cout 

2
Чи має значення статична змінна constexpr всередині функції?
Якщо у мене є змінна всередині функції (скажімо, великий масив), чи є сенс оголошувати її як staticі constexpr? constexprгарантує, що масив створюється під час компіляції, так що staticбуде марним? void f() { static constexpr int x [] = { // a few thousand elements }; // do something with the …
193 c++  static  c++11  constexpr 

9
Які ідіоми C ++ застаріли в C ++ 11?
З новим стандартом з'являються нові способи робити речі, і багато хто приємніший за старі, але старий спосіб все-таки прекрасний. Зрозуміло також, що новий стандарт офіційно не дуже застаряє з міркувань відсталої сумісності. Тож питання, що залишається,: Які старі способи кодування, безумовно, поступаються стилям C ++ 11, і що ми можемо …
192 c++  c++11  c++-faq 

7
Чому std :: list :: reverse має складність O (n)?
Чому функція звороту для std::listкласу в стандартній бібліотеці C ++ має лінійне виконання? Я думаю, що для подвійно пов'язаних списків зворотна функція повинна була бути O (1). Повернення подвійно пов'язаного списку повинно включати перемикання вказівників голови та хвоста.
192 c++  c++11  stl  linked-list 

2
Які функції Boost перекриваються C ++ 11?
Я поставив свої навички C ++ на полиці кілька років тому, і, здається, зараз, коли мені вони знову потрібні, пейзаж змінився. Зараз у нас є C ++ 11, і я розумію, що він перекриває багато функцій Boost. Чи є якийсь підсумок, де лежать ті дублювання, які збільшать бібліотеки Boost, які …
191 c++  boost  c++11 

5
У чому сенс норетурну?
[dcl.attr.noreturn] надає такий приклад: [[ noreturn ]] void f() { throw "error"; // OK } але я не розумію, в чому сенс [[noreturn]], тому що тип повернення функції вже є void. Отже, в чому сенс noreturnатрибута? Як це слід використовувати?


16
Як мені зателефонувати :: std :: make_shared для класу із захищеними або приватними конструкторами?
У мене цей код не працює, але я думаю, що намір зрозумілий: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); } Але …
187 c++  c++11  shared-ptr 

6
Невизначена посилання на статичну таблицю constexpr []
Я хочу мати static const charмасив у своєму класі. GCC поскаржився і сказав мені, що я повинен використовувати constexpr, хоча зараз він говорить мені, що це невизначене посилання. Якщо я зроблю масив не членом, то він компілюється. Що відбувається? // .hpp struct foo { void bar(); static constexpr char baz[] …

4
std :: auto_ptr to std :: unique_ptr
З новим стандартом (і деталі, які вже доступні в деяких компіляторах), новий тип std::unique_ptrповинен бути заміною std::auto_ptr. Чи точно їхнє використання перекривається (тому я можу зробити глобальний пошук / заміну свого коду (не те, що я б це зробив, але якби це зробив)) чи я повинен знати про деякі відмінності, …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.