База Hintsage

Программирование C++

Язык C++ и его модель выполнения.

Темы раздела

Выберите подраздел

Практика

Вопросы: Программирование C++

В универсальном адаптере требуется вызвать указатель на метод, не зная заранее, будет ли объект ссылкой или указателем. Какой механизм C++17 следует применить вместо ручного разветвления? Определите вывод программы.

#include <functional>
#include <iostream>

struct Device {
    int read() const { return 42; }
};

int main() {
    Device device;
    auto member = &Device::read;

    std::cout << std::invoke(member, device) << '
';
    std::cout << std::invoke(member, &device) << '
';
}
Программирование C++Современный C++Разработчик библиотек C++

Вызов алгоритма получает временный диапазон. Определите тип результата и объясните защиту от висячего итератора:

#include <algorithm>
#include <concepts>
#include <ranges>
#include <vector>

int main() {
    auto result = std::ranges::find(std::vector{1, 2, 3}, 2);
    static_assert(std::same_as<decltype(result), std::ranges::dangling>);
}
Программирование C++Современный C++C++ разработчик библиотек

Показано 2140 из 300