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

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

3
Как узнать, какие функции генерирует компилятор?
Я знаю о сгенерированных компилятором функциях, правило трех и правило пяти. В реальных сценариях может оказаться нетривиальным выяснить, какие именно функции, сгенерированные компилятором (конструкторы, операторы присваивания, деструктор) были фактически созданы компилятором. Есть ли способ перечислить сгенерированные компилятором функции для определенного класса? Меня в первую очередь интересуют Visual Studio 2019 и …
11 c++  c++11 

5
C ++ троичное назначение лямбда
Есть идеи, почему следующий фрагмент не компилируется? Он жалуется с ошибкой «ошибка: операнды к?: Есть разные типы» auto lambda1 = [&](T& arg) { ... }; auto lambda2 = [&](T& arg) { ... }; auto lambda = condition ? lambda1 : lambda2;

2
Вызов лямбда неоднозначен, несмотря на явное указание типа возврата
Перегруженная функция должна принимать оба функтора, учитывая, что тип лямбды можно разрешить (можно преобразовать в std::function(пожалуйста, исправьте меня, если я ошибаюсь). Вопрос в том, почему ниже приведена ошибка компиляции, несмотря на то, что лямбда-тип явно определен? ( [&]() -> Type {}) Обратите внимание, что для моего текущего решения мне нужен …


2
Вывод типов аргументов шаблона шаблона C ++
У меня есть код, который находит и распечатывает совпадения шаблона, как проходя через контейнер строк. Печать выполняется в функции foo, которая является шаблонной. Код #include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <string> #include <tuple> #include <utility> template<typename Iterator, template<typename> class Container> void foo(Iterator first, Container<std::pair<Iterator, Iterator>> const &findings) …

3
Можно ли преобразовать nullptr в uintptr_t? Разные компиляторы не согласны
Рассмотрим эту программу: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Не удалось скомпилировать с msvc v19.24: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an …
10 c++  c++11  gcc  visual-c++  clang 

3
Почему не обязательно использовать typename для зависимых типов в следующем случае?
Я читал об удалении ссылки типа здесь . Это дает следующий пример: #include <iostream> // std::cout #include <type_traits> // std::is_same template<class T1, class T2> void print_is_same() { std::cout << std::is_same<T1, T2>() << '\n'; } int main() { std::cout << std::boolalpha; print_is_same<int, int>(); print_is_same<int, int &>(); print_is_same<int, int &&>(); print_is_same<int, std::remove_reference<int>::type>(); …

1
Как получить количество элементов в std :: array <T, N>, не создавая его экземпляр?
Есть std::array&lt;T, N&gt;::size(), но это не статично, поэтому требуется экземпляр std::array. Есть ли способ получить значение, которое он возвращает (который является Nиз std::array&lt;T, N&gt;) без необходимости создания экземпляра массива? Для обычного массива я мог бы использовать sizeof, но не вижу никакой гарантии, что sizeof(std::array&lt;T, N&gt;) == N * sizeof(T)это правда.
9 c++  arrays  c++11  sizeof 

2
Скопировать конструктор с неконстантным аргументом, предложенным правилами безопасности потока?
У меня есть обертка для какого-то унаследованного кода. class A{ L* impl_; // the legacy object has to be in the heap, could be also unique_ptr A(A const&amp;) = delete; L* duplicate(){L* ret; legacy_duplicate(impl_, &amp;L); return ret;} ... // proper resource management here }; В этом унаследованном коде функция, которая …

2
Могу ли я использовать собственный распределитель для std :: array для безопасных криптографических ключей?
Я знаю, std::arrayчто полностью распределен в стеке, но этот вопрос мотивирован проблемами безопасности, которые требуют двух вещей: Данные в std::arrayнуле или будут рандомизированы при уничтожении Данные в std::arrayбудут заблокированы , так что они никогда не попадут на диск ни в случае сбоя, ни в разделе подкачки Обычно std::vectorрешение заключается в …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.