Показать сообщение отдельно

  #9  
Старый 18.03.2019, 23:56
san0
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами: 6530249

Репутация: 133
По умолчанию

Цитата:
Сообщение от arsh12344  

Не подскажете, какой тип имеет выражение?)

Код:





Код:
[](){};

Стандартом не определена однозначность.

Так называемый closure type - prvalue выражение, которое представляет собой уникальную неименованную неагрегированную структуру/класс, которая имеет перегруженный operator(), ну и еще пару методов.

В случае, когда функция не имеет захватов (сaptures), тогда можно неявно преобразовать в указатель на функцию

C++:





[CODE]
#include
#include
#include
auto
main
(
void
)
->
int
{
void
(
*
dd
)
(
)
=
[
]
{
std
::
cout

pp
=
[
]
{
std
::
cout



Цитата:

Z4mainEUlvE0_
Z4mainEUlvE1_
FvvE
FvvE
Надеюсь, чуточку прояснил ситуацию, но в любом случае советую посмотреть

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf, 94 страница
 
Ответить с цитированием