#define macro()<...>做什么用?

3 c++ macros boost c-preprocessor

这条线做什么?我怀疑它是一个模板或表达.(做那些divies并命名成员hpp是个坏主意)

# define BOOST_PP_UPDATE_COUNTER() <boost/preprocessor/slot/detail/counter.hpp>
Run Code Online (Sandbox Code Playgroud)

完整档案

# /* **************************************************************************
#  *                                                                          *
#  *     (C) Copyright Paul Mensonides 2005.                                  *
#  *     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)                                *
#  *                                                                          *
#  ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_SLOT_COUNTER_HPP
# define BOOST_PREPROCESSOR_SLOT_COUNTER_HPP
#
# include <boost/preprocessor/slot/detail/def.hpp>
#
# /* BOOST_PP_COUNTER */
#
# define BOOST_PP_COUNTER 0
#
# /* BOOST_PP_UPDATE_COUNTER */
#
# define BOOST_PP_UPDATE_COUNTER() <boost/preprocessor/slot/detail/counter.hpp>
#
# endif
Run Code Online (Sandbox Code Playgroud)

Lig*_*ica 6

显然它会做一些自动递增的魔术.

这是文档.

我不知道它是如何工作的.我所知道的是魔法在counter.hpp本身; 您发布的定义中包含括号,以便您可以编写模糊的用户友好:

#include BOOST_PP_UPDATE_COUNTER()
Run Code Online (Sandbox Code Playgroud)

调用所说的魔法.