int main(void) { //[macro_commas void BOOST_LOCAL_FUNCTION( BOOST_IDENTITY_TYPE((const std::map<std::string, size_t>&)) m, BOOST_IDENTITY_TYPE((::sign_t)) sign, const size_t& factor, default (key_sizeof<std::string, size_t>::value), const std::string& separator, default cat(":", " ") ) { // Do something... } BOOST_LOCAL_FUNCTION_NAME(f) //] std::map<std::string, size_t> m; ::sign_t sign = -1; f(m, sign); return 0; }
// 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/utility/identity_type #include <map> #define VAR(type, n) type var ## n VAR(int, 1); // OK. //[var_typedef typedef std::map<int, char> map_type; VAR(map_type, 3); // OK. //] //[var_ok #include <boost/utility/identity_type.hpp> VAR(BOOST_IDENTITY_TYPE((std::map<int, char>)), 4); // OK. //] int main() { return 0; }