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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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