swh:1:snp:f521c49ab17ef7db6ec70b2430e1ed203f50383f
Raw File
Tip revision: ea071a5ce1a5301caef764e6c30f7d4f4740b82b authored by wenqing on 08 February 2022, 14:57:48 UTC
Merge branch 'RM_T_init_total_stress_vapor_diffusion_latent_heat_use_MPL_vapour_stuff' into 'master'
Tip revision: ea071a5
cpp23.h
/**
 * \file
 * \copyright
 * Copyright (c) 2012-2022, OpenGeoSys Community (http://www.opengeosys.org)
 *            Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 *
 */

#pragma once

#include <type_traits>

// ToDo (tm) remove with c++23

namespace BaseLib
{
/**
 *  \brief Converts an enumeration to its underlying type.
 *  \param e Enumeration value to convert
 *  \return The integer value of the underlying type of Enum, converted from e.
 *
 * https://en.cppreference.com/w/cpp/utility/to_underlying
 * Implementation from Scott Meyers : Modern effective c++ , Item 10 Scoped
 * enums
 */
template <typename E>
constexpr auto to_underlying(E e) noexcept
{
    return static_cast<std::underlying_type_t<E>>(e);
}
}  // namespace BaseLib
back to top