// 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 #ifndef BOOST_NO_VARIADIC_MACROS #include #include #include #define BOOST_TEST_MODULE TestMacroCommas #include #include #include std::string cat(const std::string& x, const std::string& y) { return x + y; } template struct key_sizeof { BOOST_STATIC_CONSTANT(int, value = sizeof(K)); }; typedef int sign_t; BOOST_AUTO_TEST_CASE(test_macro_commas) { //[macro_commas 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); } #else int main(void) { return 0; } // Trivial test. #endif