// Copyright (C) 2009-2012 Lorenzo Caminiti // Distributed under the Boost Software License, Version 1.0 // (see accompanying file LICENSE_1_0.txt or a copy at // http://www.boost.org/LICENSE_1_0.txt) // Home at http://www.boost.org/libs/local_function #include #include #include // Type-of registrations #include // needed for `NAME` macro. #include #include #include std::string cat(const std::string& x, const std::string& y) { return x + y; } template struct key_sizeof { static int const value; }; template int const key_sizeof::value = sizeof(K); typedef int sign_t; int main(void) { void BOOST_LOCAL_FUNCTION( (BOOST_IDENTITY_TYPE((const std::map&)) m) (BOOST_IDENTITY_TYPE((::sign_t)) sign) (const size_t& factor) (default (key_sizeof::value)) (const std::string& separator)(default cat(":", " ")) ) { // Do something... } BOOST_LOCAL_FUNCTION_NAME(f) std::map m; ::sign_t sign = -1; f(m, sign); return 0; }