Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
762 views
in Technique[技术] by (71.8m points)

visual c++ - Strange C++ syntax

I have 8 years of coding experience, but I have never seen the operator [] passed as a parameter to the function definition.

For example, the following code (from an open source project):

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

Throughout my coding life, I have always defined [] as an operator overloader, not as a parameter.

So what does this new syntax signify?

I am using the compiler that comes with Visual Studio 2003. How can I change the above code so that it will compile in VS 2003?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

That is a c++ lambda you could replace the code with a function object of the same definition. The link shows two examples one using Functor and one using a lambda.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...