
On Sun, Aug 22, 2010 at 11:09 AM, Lorenzo Caminiti <lorcaminiti@gmail.com> wrote:
Hello all,
Is there interest in a library that implements local functions for C++?
BTW, I just realized that I never mentioned it before but Boost.LocalFunction also supports default values for unbound parameters. For example, the unbound `offset` parameter of the `line()` local function below is optional (its default value is `0`): #include <contract/detail/local_function.hpp> #include <iostream> struct c { c(): y_(0.0) {} void f(double x) { CONTRACT_DETAIL_LOCAL_FUNCTION( (double) (line)( (int)(slope) (int)(offset)(default)(0) // Has default value. (const bound)((&x)) (bound)((this)) ) ) { double y = slope * x + offset; return this_->y_ = y; } CONTRACT_DETAIL_LOCAL_FUNCTION_END(line) std::cout << line(2) << std::endl; // Print `20`. std::cout << line(2, 100) << std::endl; // Print `120`. } private: double y_; }; int main() { c cc; cc.f(10); return 0; } -- Lorenzo