Как правильно использовать C ++ 11 на основе диапазона for? Какой синтаксис следует использовать? for (auto elem : container)или for (auto& elem : container)или for (const auto& elem : container)? Или какой-то...
Как правильно использовать C ++ 11 на основе диапазона for? Какой синтаксис следует использовать? for (auto elem : container)или for (auto& elem : container)или for (const auto& elem : container)? Или какой-то...
Eclipse 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 перестать жаловаться на подобные...
Можно ли передать лямбда-функцию в качестве указателя на функцию? Если это так, я должен что-то делать неправильно, потому что я получаю ошибку компиляции. Рассмотрим следующий пример using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn...
Иногда утверждают, что C ++ 11/14 может повысить производительность даже при простой компиляции кода C ++ 98. Обоснование обычно происходит в соответствии с семантикой перемещения, поскольку в некоторых случаях конструкторы rvalue генерируются автоматически или теперь являются частью STL. Теперь...
Это будет пример: #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...
Каждый стандартный контейнер имеет beginи endспособ возвращения итераторов для этого контейнера. Тем не менее, C ++ 11, по- видимому , введенные свободные функции называются std::beginи std::endкоторые называют beginи endчлены функции. Итак, вместо того, чтобы писать auto i = v.begin(); auto e =...
Каковы причины существования std::decay? В каких ситуациях std::decayпригодится?
Если у меня есть переменная внутри функции (скажем, большой массив), имеет ли смысл объявлять ее одновременно staticи constexpr? constexprгарантирует, что массив создается во время компиляции, так что staticбудет бесполезно? void f() { static constexpr int x [] = { // a few thousand elements }; //...
Я положил свои навыки C ++ на полку несколько лет назад, и теперь, когда они мне снова нужны, ситуация изменилась. Сейчас у нас есть C ++ 11, и я понимаю, что он перекрывает многие функции Boost. Есть ли какая-то сводка, где лежат эти перекрытия, какие библиотеки Boost станут унаследованными,...
Почему обратная функция для std::listкласса в стандартной библиотеке C ++ имеет линейное время выполнения? Я думаю, что для двусвязных списков обратная функция должна была быть O (1). Изменение двусвязного списка должно включать переключение указателей головы и...
С новым стандартом появляются новые способы ведения дел, и многие из них более хороши, чем старые, но старый способ все еще в порядке. Также ясно, что новый стандарт официально не очень устарел по причинам обратной совместимости. Итак, вопрос, который остается: Какие старые способы кодирования...
Интересно почему cbeginи cendбыли введены в C ++ 11? В каких случаях вызов этих методов отличается от константных перегрузок beginи
[dcl.attr.noreturn] предоставляет следующий пример: [[ noreturn ]] void f() { throw "error"; // OK } но я не понимаю в чем смысл [[noreturn]], потому что возвращаемый тип функции уже есть void. Итак, в чем смысл этого noreturnатрибута? Как это должно быть...
У меня есть этот код, который не работает, но я думаю, что цель ясна: 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 &)...
Я хочу иметь static const charмассив в моем классе. GCC пожаловался и сказал мне, что я должен использовать constexpr, хотя теперь он говорит мне, что это неопределенная ссылка. Если я сделаю массив не членом, он будет скомпилирован. Что происходит? // .hpp struct foo { void bar(); static constexpr...
С появлением нового стандарта (и частей, уже доступных в некоторых компиляторах), новый тип std::unique_ptrдолжен заменить его std::auto_ptr. Их использование в точности совпадает (поэтому я могу выполнить глобальный поиск / замену в моем коде (не то, чтобы я это делал, но если бы я это сделал))...
Я читал и слышал, что C ++ 11 поддерживает Unicode. Несколько вопросов по этому поводу: Насколько хорошо стандартная библиотека C ++ поддерживает Unicode? Делает std::stringто, что должен? Как мне это использовать? Где потенциальные проблемы?...
Этот ответ @R. Мартиньо Фернандес показывает, что идиома безопасного булла в C ++ 11 явно устарела, так как ее можно заменить простым explicit operator bool() const; согласно стандартной цитате в ответе §4 [conv] p3: Выражение e может быть неявно преобразовано в тип Tтогда и только тогда, когда...
Как удалить с карты во время итерации? лайк: std::map<K, V> map; for(auto i : map) if(needs_removing(i)) // remove it from the map Если я использую map.eraseего, аннулирует
Использование C ++ 11, Ubuntu 14.04, GCC по умолчанию . Этот код не работает: constexpr std::string constString = "constString"; ошибка: тип 'const string {aka const std :: basic_string}' переменной constexpr 'constString' не является литералом ... потому что ... 'std :: basic_string' имеет...