Например: int a = 12; cout << typeof(a) << endl; Ожидаемый результат:
Например: int a = 12; cout << typeof(a) << endl; Ожидаемый результат:
Пожалуйста, обратите внимание на обновления в конце этого поста. Обновление: я создал публичный проект на GitHub для этой библиотеки! Я хотел бы иметь один шаблон, который раз и навсегда позаботится о красивой печати через все контейнеры STL operator<<. В псевдокоде я ищу что-то вроде этого:...
Я достаточно знаком с C ++ 11 -х годов std::thread, std::asyncи std::futureкомпоненты (например , см этот ответ ), которые являются прямо вперед. Тем не менее, я не могу понять, что std::promiseесть, что он делает и в каких ситуациях его лучше всего использовать. Сам стандартный документ не...
У меня есть класс template<size_t N, size_t M> class Matrix { // .... }; Я хочу сделать a, typedefкоторый создает Vector(вектор столбца), который эквивалентен a Matrixс размерами N и 1. Что-то вроде этого: typedef Matrix<N,1> Vector<N>; Что приводит к ошибке компиляции. Следующее...
Я пытаюсь обновить мой компилятор C ++ до C ++ 11. Я немного искал и пришел к выводу, что мне нужно использовать флаг -std=c++0xили -std=gnu++0x, но я мало что знаю о флагах. Может кто-нибудь мне помочь? (Я использую Ubuntu 12.04.) Вот ошибка, которую я получаю от компилятора, когда я пытаюсь...
unique_ptr<T>не позволяет создавать копии, вместо этого он поддерживает семантику перемещения. Тем не менее, я могу вернуть функцию unique_ptr<T>из функции и присвоить возвращаемое значение переменной. #include <iostream> #include <memory> using namespace std;...
Когда я пытаюсь запустить созданный CMake make-файл для компиляции моей программы, я получаю сообщение об ошибке Диапазон, основанный на циклах, не поддерживается в режиме C ++ 98. Я пытался добавить add_definitions(-std=c++0x)в мой CMakeLists.txt, но это не помогло. Я тоже это попробовал:...
На этот вопрос есть ответы на Переполнение стека на русском : Чем std :: unique_lock отличается от std :: lock_guard? У меня есть два варианта использования. О. Я хочу синхронизировать доступ двумя потоками к очереди. Б. Я хочу синхронизировать доступ двух потоков к очереди и использовать условную...
Мне кажется, что наличие «функции, которая всегда возвращает 5» нарушает или ослабляет значение «вызова функции». Должна быть причина, или необходимость в этой возможности, иначе ее не будет в C ++ 11. Почему это там? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife...
Типичный пример циклов for (), основанных на диапазоне C ++ 11, всегда выглядит примерно так: std::vector<int> numbers = { 1, 2, 3, 4, 5, 6, 7 }; for ( auto xyz : numbers ) { std::cout << xyz << std::endl; } В каком случае xyzэто int. Но что происходит, когда у нас есть что-то...
C ++ 11 допускает inline namespaces, все члены которых также автоматически включаются в корпус namespace. Я не могу придумать какое-либо полезное применение этого - может ли кто-нибудь дать краткий, краткий пример ситуации, когда inline namespaceнужен и где это самое идиоматическое решение? (Кроме...
Есть ли контейнерный адаптер, который бы изменял направление итераторов, чтобы я мог перебирать контейнер в обратном направлении с помощью цикла for на основе диапазона? С явными итераторами я бы преобразовал это: for (auto i = c.begin(); i != c.end(); ++i) { ... в это: for (auto i = c.rbegin(); i...
Можно ли для кода C ++ соответствовать как стандарту C ++ 03, так и стандарту C ++ 11 , но делать разные вещи в зависимости от того, по какому стандарту он
Я пытаюсь создать std::threadс помощью функции-члена, которая не принимает аргументов и возвращает void. Я не могу понять, какой синтаксис работает - компилятор жалуется, несмотря ни на что. Как правильно реализовать, spawn()чтобы он возвращал std::threadвыполняемое test()? #include <thread>...
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); Здесь есть много постов о Google и StackOverflow, но я не могу понять, почему make_sharedэто более эффективно, чем прямое использование shared_ptr. Может кто-нибудь...
Недавно я наткнулся на следующий эзотерический фрагмент кода. int main(){(([](){})());} Переформатируйте его следующим образом, чтобы сделать его более читабельным: int main(){ (([](){})()); // Um... what?!?! } Но я не могу понять, как (([](){})())действует код. Это не похоже на синтаксис указателя...
Когда функция берет shared_ptr(из boost или C ++ 11 STL), вы передаете ее: по постоянной ссылке: void foo(const shared_ptr<T>& p) или по значению void foo(shared_ptr<T> p):? Я бы предпочел первый метод, потому что подозреваю, что он будет быстрее. Но стоит ли это того или есть...
Я не задаю этот вопрос из-за достоинств сборки мусора в первую очередь. Моя главная причина, по которой я спрашиваю об этом, состоит в том, что я знаю, что Бьярн Страуструп сказал, что C ++ будет иметь сборщик мусора в определенный момент времени. С учетом сказанного, почему он не был добавлен? Уже...
Я начал изучать умные указатели C ++ 11, и я не вижу никакого полезного использования std::weak_ptr. Может кто-нибудь сказать мне, когда std::weak_ptrэто полезно /