Странный синтаксис C ++

У меня 8-летний опыт кодирования, но я никогда не видел, чтобы оператор [] передавался как параметр в определение функции.

Например, следующий код (из проекта с открытым исходным кодом):

bree::porder(m_root, [] (treenode* node) { delete node; }); 

На протяжении всей моей жизни кодирования я всегда определял [] как оператор перегрузки, а не как параметр ,

Итак, что означает этот новый синтаксис?

Я использую компилятор, который поставляется с Visual Studio 2003. Как я могу изменить приведенный выше код, чтобы он компилировался в VS 2003?

8
задан Cody Gray 24 July 2011 в 06:01
поделиться