Std :: invoke_result_t + std :: mem_fn не компилируетсяC++

Программы на C++. Форум разработчиков
Anonymous
Std :: invoke_result_t + std :: mem_fn не компилируется

Сообщение Anonymous »

Почему static_assert не удастся в коде ниже?

Код: Выделить всё

struct Device
{
Device(std::string v, int n, std::vector children) :
Version(std::move(v)),
InventoryNumber(n),
Children(std::move(children))
{
}

std::string Version;
int InventoryNumber;
std::vector Children;
};

void f()
{
auto getter = std::mem_fn(&Device::Version);

using Getter = decltype(getter);

using Field = std::invoke_result_t;

static_assert(std::is_same_v);
}
Я ожидал поле быть Std :: string , но это не так. Почему?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ot-compile

Вернуться в «C++»