use std integral_constant

This commit is contained in:
Sébastien Loriot 2023-11-23 09:39:17 +01:00
parent d9bdf5cfc5
commit 6cd28f751e
1 changed files with 1 additions and 14 deletions

View File

@ -19,26 +19,13 @@
#define CGAL_TAGS_H
#include <CGAL/IO/io_tags.h>
#include <boost/mpl/integral_c.hpp>
namespace CGAL {
struct Void {};
// Boolean_tag<bool> is a model of the Boost Integral Constant concept.
// https://www.boost.org/libs/mpl/doc/refmanual/integral-constant.html
template <bool b>
struct Boolean_tag {
typedef boost::mpl::integral_c_tag tag;
typedef bool value_type;
static const bool value = b;
typedef Boolean_tag<b> type;
operator bool() const { return this->value; }
};
/* In C++11, try:
template <bool b>
using Boolean_tag = std::integral_constant<bool, b>;
*/
using Boolean_tag = std::bool_constant<b>;
typedef Boolean_tag<true> Tag_true;
typedef Boolean_tag<false> Tag_false;