Результаты поиска по запросу "c++11"
Как сделать так, чтобы std :: shared_ptr не вызывал delete ()
У меня есть функции, которые принимают в качестве аргумента std :: shared_ptr, поэтому я вынужден использовать std :: shared_ptr, но объект, который я передаю функции, не выделяется динамически. Как мне обернуть объект в std :: shared_ptr и чтобы ...
Это действительно работает. Я не знаю, что пошло не так во время моих первоначальных тестов, потому что я однажды перевернул аргументы шаблона. Но, тем не менее, спасибо. :)
тоящее время я нахожусь в процессе написания арифметических перегрузок операторов для кортежей. Оператор выполняет итерации по кортежу, чтобы выполнить операцию над каждым его отдельным элементом. Вот определение для оператора + =: template< ...
Альтернативные реализации STL в C ++ 11 и выше
Со временем появились различные альтернативные реализации STL *, такие как STLPort. Некоторые крупные корпорации также используют свой собственный внутренний порт STL для различных целей. С C ++ 03 можно написать порт STL, используя только ...
Ну, я не знаю, потому что decltype () принимает выражения, поэтому дело в том, что выражение не оценивается в этом случае, а в вашем примере. Так что я спрашиваю в случае с decltype (), сможет ли оно использовать выражение или это явно запрещено?
вопрос, очевидно, предполагает, что мы не хотим использовать шаблоны для этого типа (по каким-либо причинам). class Product { public: Product( decltype(mPrice) price_, decltype(mLabel) label_ ) // 1. : mPrice( price_ ), mLabel( label_ ) {} ...
s) на данный момент. Ядро симпатичной библиотеки печати красивое и маленькое, что приятно. Я пытался сделать его легко расширяемым, не уверен, что мне это удастся.
уйста, обратите внимание на обновления в конце этого поста. Обновление: я создалпубличный проект на GitHub [http://louisdx.github.com/cxx-prettyprint/]для этой библиотеки! Я хотел бы иметь один шаблон, который раз и навсегда позаботится о ...
Первоначальный вопрос был о неоднозначности между двумя специализациями шаблонов, когда второй аргумент не участвовал в разрешении неоднозначности. Чтобы достичь этого, второй аргумент должен иметь тип std :: size_t. Ваш образец не отвечает на вопрос и не доказывает, что «объявления шаблона не являются неоднозначными», потому что первый или второй аргумент становится более специализированным. Если вы попытаетесь вызвать ваш шаблон как «func (buf, static_cast <std :: size_t> (2))», вы получите оригинальную проблему.
у следующие два объявления шаблона неоднозначны (поэтому ни один не является более специализированным, чем другой)? Я знаю, что этот вопрос много раз поднимался на Stack Overflow, но обычно люди отвечают, как решить двусмысленность, а не почему ...
Д.В. потому что он не отвечает на вопросы, поставленные непосредственно.
рукторы списков инициализаторов в C ++ часто вызывают проблемы; например using std::vector; using std::string; vector<string> v{3}; // vector of three empty strings vector<int> u{3}; // vector of one element with value 3(Просто чтобы уточнить, я ...
Переместить элемент std priority_queue в C ++ 11
Минимальный рабочий пример. #include <cassert> #include <list> #include <queue> //#define USE_PQ struct MyClass { const char* str; MyClass(const char* _str) : str(_str) {} MyClass(MyClass&& src) { str = src.str; src.str = nullptr; } ...
Все 3 варианта удовлетворяют 1, поскольку default + copy, default + move эквивалентны значению по умолчанию. Все 3 варианта удовлетворяют 3. Все 3 варианта удовлетворяют 2: они работают для типов DefaultConstructible. Определенный алгоритм может использоваться для Подвижных типов. В STL принято использовать разные версии алгоритмов для типов с разными возможностями.
у приложение для Linux и Windows, и заметил, что сборка GCC производит много бесполезных вызовов конструктора копирования. Вот пример кода, чтобы произвести это поведение: struct A { A() { std::cout << "default" << std::endl; } A(A&& rvalue) ...
over.match.ctor говорит: «Для прямой инициализации или инициализации по умолчанию, которая не находится в контексте инициализации копирования, все функции-кандидаты являются конструкторами класса инициализируемого объекта. Для инициализации копирования функции-кандидаты все конвертирующие конструкторы этого класса. Список аргументов - это список выражений или выражение присваивания инициализатора. " Это означает, что мы рассматриваем только конвертирующие конструкторы.
код прекрасно компилируется с GCC 5.X, MSVC, но GCC 6.X выдает ошибку: "преобразование в 'a' из списка инициализаторов будет использовать явный конструктор 'a :: a ()'"лязг"выбранный конструктор явно в ...