text: #ifndef BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED
  #define BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED
  
  //  Copyright 2001 John Maddock.
  //  Copyright 2017 Peter Dimov.
  //
  //  Distributed under the Boost Software License, Version 1.0.
  //
  //  See accompanying file LICENSE_1_0.txt or copy at
  //  http://www.boost.org/LICENSE_1_0.txt
  //
  //  BOOST_STRINGIZE(X)
  //  BOOST_JOIN(X, Y)
  //
  //  Note that this header is C compatible.
  
  //
  // Helper macro BOOST_STRINGIZE:
  // Converts the parameter X to a string after macro replacement
  // on X has been performed.
  //
  #define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
  #define BOOST_DO_STRINGIZE(X) #X
  
  //
  // Helper macro BOOST_JOIN:
  // The following piece of macro magic joins the two
  // arguments together, even when one of the arguments is
  // itself a macro (see 16.3.1 in C++ standard).  The key
  // is that macro expansion of macro arguments does not
  // occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
  //
  #define BOOST_JOIN(X, Y) BOOST_DO_JOIN(X, Y)
  #define BOOST_DO_JOIN(X, Y) BOOST_DO_JOIN2(X,Y)
  #define BOOST_DO_JOIN2(X, Y) X##Y
  
  #endif // BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED
  