blob: 9f5754d76b467a0b4cec771ffca92f1a00ad2137 [file] [log] [blame]
Jeff Thompsonef2d5a42013-08-22 19:09:24 -07001# /* Copyright (C) 2001
2# * Housemarque Oy
3# * http://www.housemarque.com
4# *
5# * Distributed under the Boost Software License, Version 1.0. (See
6# * accompanying file LICENSE_1_0.txt or copy at
7# * http://www.boost.org/LICENSE_1_0.txt)
8# */
9#
10# /* Revised by Paul Mensonides (2002) */
11#
12# /* See http://www.boost.org for most recent version. */
13#
Jeff Thompson3d613fd2013-10-15 15:39:04 -070014# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
15# define NDNBOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070016#
17# include <ndnboost/preprocessor/arithmetic/detail/div_base.hpp>
18# include <ndnboost/preprocessor/config/config.hpp>
19# include <ndnboost/preprocessor/tuple/elem.hpp>
20#
Jeff Thompson3d613fd2013-10-15 15:39:04 -070021# /* NDNBOOST_PP_MOD */
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070022#
Jeff Thompson3d613fd2013-10-15 15:39:04 -070023# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
24# define NDNBOOST_PP_MOD(x, y) NDNBOOST_PP_TUPLE_ELEM(3, 1, NDNBOOST_PP_DIV_BASE(x, y))
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070025# else
Jeff Thompson3d613fd2013-10-15 15:39:04 -070026# define NDNBOOST_PP_MOD(x, y) NDNBOOST_PP_MOD_I(x, y)
27# define NDNBOOST_PP_MOD_I(x, y) NDNBOOST_PP_TUPLE_ELEM(3, 1, NDNBOOST_PP_DIV_BASE(x, y))
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070028# endif
29#
Jeff Thompson3d613fd2013-10-15 15:39:04 -070030# /* NDNBOOST_PP_MOD_D */
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070031#
Jeff Thompson3d613fd2013-10-15 15:39:04 -070032# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
33# define NDNBOOST_PP_MOD_D(d, x, y) NDNBOOST_PP_TUPLE_ELEM(3, 1, NDNBOOST_PP_DIV_BASE_D(d, x, y))
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070034# else
Jeff Thompson3d613fd2013-10-15 15:39:04 -070035# define NDNBOOST_PP_MOD_D(d, x, y) NDNBOOST_PP_MOD_D_I(d, x, y)
36# define NDNBOOST_PP_MOD_D_I(d, x, y) NDNBOOST_PP_TUPLE_ELEM(3, 1, NDNBOOST_PP_DIV_BASE_D(d, x, y))
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070037# endif
38#
39# endif