Sintaxe estranha do C ++

Tenho 8 anos de experiência em codificação, mas nunca vi o operador[]assou como parâmetro para a definição da funçã

Por exemplo, o seguinte código (de um projeto de código aberto):

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

Ao longo da minha vida de codificação, eu sempre defini[] como um sobrecarregador de operador, não como um parâmetr

Então, o que significa essa nova sintaxe?

Estou usando o compilador que acompanha o Visual Studio 2003. Como posso alterar o código acima para que ele seja compilado no VS 200

questionAnswers(3)

yourAnswerToTheQuestion