Запитання з тегом «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) { for …

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
Чому в наступному випадку не потрібно використовувати назви типу для залежних типів?
Я читав про видалення посилання на тип тут . Він наводить такий приклад: #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, …

2
Чи можу я використовувати спеціальний розподільник для std :: array для захищених криптографічних ключів?
Я знаю std::array, повністю розподілений у стеці, але це питання мотивоване питаннями безпеки, які потребують двох речей: Дані в std::arrayбуде знищені або рандомізовані при знищенні Дані в std::arrayбуде заблоковано , так що вони ніколи не переходять на диск ні при збої, ні в обмін пам'яті Зазвичай, з std::vector, рішення, це …

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;) …
9 c++  arrays  c++11  sizeof 

2
Скопіюйте конструктор з аргументом non-const, запропонованим правилами безпеки потоку?
У мене є обгортка для якогось фрагмента спадкового коду. 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 }; У цьому застарілому коді функція, …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.