Boost logo

Boost :

Subject: [boost] Using C++11 lambdas to replace Phoenix in MPL expressions
From: Augustus Saunders (infinite_8_monkey_at_[hidden])
Date: 2012-03-24 22:25:05


I use Phoenix to essentially turn code into types which can then be manipulated through MPL. I mostly use this to conditionally select algorithms or to include/exclude code at compile time,  based on some logic written with MPL.  I was interested in writing the code fragments using the new C++11 lambda expressions as it gives a more natural way to write code.  While you can get the type of a lambda expression with decltype, the problem I've run into is instantiating the resultant type in order to actually get the function to execute.  Lambdas have no default constructor, which makes sense, as there would be no way to deal with the capture variables. So I'm wondering if anybody can shed some light on manually instantiating lambdas.  I would think there is a way (possibly shady) to do this, at least for lambdas with no capture.  Then passing around lambda types as template parameters would be useful, which I think would lead to many interesting results. I only get the digest, so it I would appreciate it if you CC me on any response.  Thanks- Augustus


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk