E0289 отсутствуют экземпляры конструктура

#include <iostream>
#include <string_view>
#include <string>
std::string_view LoL()
{
    std::string str{};
    std::getline(std::cin >> std::ws, str);
    return str;
}
int main()
{
    std::string_view x{LoL};
    std::cout << x;
    return 0;
}

не компилируется пишет

Ошибка (активно) E0289 отсутствуют экземпляры конструктора "std::basic_string_view<_Elem, _Traits>::basic_string_view [с _Elem=char, _Traits=std::char_traits]", соответствующие списку аргументов getline E:\c++\getline\Source.cpp 12

что делать


Ответы (2 шт):

Автор решения: Harry

В строке

std::string_view x{LoL};

вы передаете в качестве аргумента адрес функции LoL, а не результат ее вызова.

std::string_view x{LoL()};

Просто интересно, сколько секунд вы пытались решить этот вопрос самостоятельно?

И еще —

std::string_view LoL()
{
    static std::string str{};

или

std::string LoL()
{
    std::string str{};
    std::getline(std::cin >> std::ws, str);
    return str;
}

int main()
{
    std::string lol = LoL();
    std::string_view x{lol};
    std::cout << x;
    return 0;
}
→ Ссылка
Автор решения: Yami

Вы не вызываете функцию LoL

std::string_view x{LoL()};
→ Ссылка