Доступ к типу автоматического параметра в лямбде - PullRequest
3 голосов
/ 23 апреля 2020

Я использую лямбда-функцию для стандартного кода:

auto import = [&](auto & value){
   // Do some stuff
};

Поскольку value на самом деле как td::vector, мне нужно получить доступ к члену value_type stati c для вызова функция шаблона на одном из его элементов.

Я безуспешно пытался использовать decltype:

auto import = [&](auto & value){
   decltype(value)::value_type v;
};

Есть ли способ сделать это?

1 Ответ

3 голосов
/ 23 апреля 2020

Тип value является lvalue-ссылкой, вы не можете получить тип элемента из него и должны удалить ссылочную часть, например,

typename std::decay_t<decltype(value)>::value_type v;

PS: Вам также необходимо добавить typename заранее (как @ Влад ответил ) для имени зависимого типа. См. Где и почему я должен поставить ключевые слова «template» и «typename»? .

LIVE

...