fix doc and naming

This commit is contained in:
neargye 2019-10-03 18:56:36 +05:00
parent 1baf418d21
commit a6b2aac0b5
3 changed files with 19 additions and 19 deletions

View file

@ -4,7 +4,7 @@
# Nameof Type # Nameof Type
* To check is nameof_type supported compiler use macro `NAMEOF_TYPE_SUPPORTED` or constexpr constant `nameof::is_nameof_type_supported`. * To check is nameof type supported compiler use macro `NAMEOF_TYPE_SUPPORTED` or constexpr constant `nameof::is_nameof_type_supported`.
* This library uses a compiler-specific hack (based on `__PRETTY_FUNCTION__` / `__FUNCSIG__`), which works on Clang >= 5, MSVC >= 15.3 and GCC >= 7. * This library uses a compiler-specific hack (based on `__PRETTY_FUNCTION__` / `__FUNCSIG__`), which works on Clang >= 5, MSVC >= 15.3 and GCC >= 7.
@ -14,28 +14,28 @@
# Nameof Enum # Nameof Enum
* To check is nameof_enum supported compiler use macro `NAMEOF_ENUM_SUPPORTED` or constexpr constant `nameof::is_nameof_enum_supported`. * To check is nameof enum supported compiler use macro `NAMEOF_ENUM_SUPPORTED` or constexpr constant `nameof::is_nameof_enum_supported`.
* This library uses a compiler-specific hack (based on `__PRETTY_FUNCTION__` / `__FUNCSIG__`), which works on Clang >= 5, MSVC >= 15.3 and GCC >= 9. * This library uses a compiler-specific hack (based on `__PRETTY_FUNCTION__` / `__FUNCSIG__`), which works on Clang >= 5, MSVC >= 15.3 and GCC >= 9.
* Enum can't reflect if the enum is a forward declaration. * Enum can't reflect if the enum is a forward declaration.
* Enum value must be in range `[MAGIC_ENUM_RANGE_MIN, MAGIC_ENUM_RANGE_MAX]`. By default `MAGIC_ENUM_RANGE_MIN = -128`, `MAGIC_ENUM_RANGE_MAX = 128`. * Enum value must be in range `[NAMEOF_ENUM_RANGE_MIN, NAMEOF_ENUM_RANGE_MAX]`. By default `NAMEOF_ENUM_RANGE_MIN = -128`, `NAMEOF_ENUM_RANGE_MAX = 128`.
* If need another range for all enum types by default, redefine the macro `MAGIC_ENUM_RANGE_MIN` and `MAGIC_ENUM_RANGE_MAX`. * If need another range for all enum types by default, redefine the macro `NAMEOF_ENUM_RANGE_MIN` and `NAMEOF_ENUM_RANGE_MAX`.
```cpp ```cpp
#define MAGIC_ENUM_RANGE_MIN 0 #define NAMEOF_ENUM_RANGE_MIN 0
#define MAGIC_ENUM_RANGE_MAX 256 #define NAMEOF_ENUM_RANGE_MAX 256
#include <magic_enum.hpp> #include <nameof.hpp>
``` ```
* If need another range for specific enum type, add specialization `enum_range` for necessary enum type. * If need another range for specific enum type, add specialization `enum_range` for necessary enum type.
```cpp ```cpp
#include <magic_enum.hpp> #include <nameof.hpp>
enum number { one = 100, two = 200, three = 300 }; enum number { one = 100, two = 200, three = 300 };
namespace magic_enum { namespace nameof {
template <> template <>
struct enum_range<number> { struct enum_range<number> {
static constexpr int min = 100; static constexpr int min = 100;
@ -44,7 +44,7 @@
} }
``` ```
* `magic_enum` obtains the first defined value enums, and won't work if value are aliased. * Nameof enum obtains the first defined value enums, and won't work if value are aliased.
```cpp ```cpp
enum ShapeKind { enum ShapeKind {
ConvexBegin = 0, ConvexBegin = 0,
@ -55,8 +55,8 @@
Banana = 3, Banana = 3,
COUNT = 4, COUNT = 4,
}; };
// magic_enum::enum_cast<ShapeKind>("Box") -> std::nullopt // nameof::nameof_enum(ShapeKind::Box) -> "ConvexBegin"
// magic_enum::enum_name(ShapeKind::Box) -> "ConvexBegin" // NAMEOF_ENUM(ShapeKind::Box) -> "ConvexBegin"
``` ```
Work around the issue: Work around the issue:
```cpp ```cpp
@ -75,10 +75,10 @@
ConvexBegin = Box, ConvexBegin = Box,
ConvexEnd = Sphere + 1, ConvexEnd = Sphere + 1,
}; };
// magic_enum::enum_cast<ShapeKind>("Box") -> ShapeKind::Box // nameof::nameof_enum(ShapeKind::Box) -> "Box"
// magic_enum::enum_name(ShapeKind::Box) -> "Box" // NAMEOF_ENUM(ShapeKind::Box) -> "Box"
// Non-reflected aliases. // Non-reflected aliases.
// magic_enum::enum_cast<ShapeKind>("ConvexBegin") -> std::nullopt // nameof::nameof_enum(ShapeKind::ConvexBegin) -> "Box"
// magic_enum::enum_name(ShapeKind::ConvexBegin) -> "Box" // NAMEOF_ENUM(ShapeKind::ConvexBegin) -> "Box"
``` ```

View file

@ -14,7 +14,7 @@
* [`NAMEOF_TYPE_EXPR` macro that obtains string name type of expression, reference and cv-qualifiers are ignored.](#NAMEOF_TYPE_EXPR) * [`NAMEOF_TYPE_EXPR` macro that obtains string name type of expression, reference and cv-qualifiers are ignored.](#NAMEOF_TYPE_EXPR)
* [`NAMEOF_FULL_TYPE_EXPR` macro that obtains string name full type of expression, with reference and cv-qualifiers.](#NAMEOF_FULL_TYPE_EXPR) * [`NAMEOF_FULL_TYPE_EXPR` macro that obtains string name full type of expression, with reference and cv-qualifiers.](#NAMEOF_FULL_TYPE_EXPR)
## Synopsis # Synopsis
* Before use, read the [limitations](limitations.md) of functionality. * Before use, read the [limitations](limitations.md) of functionality.

View file

@ -381,7 +381,7 @@ constexpr std::size_t reflected_size() {
static_assert(reflected_max_v<E> > reflected_min_v<E>, "nameof::enum_range requires max > min."); static_assert(reflected_max_v<E> > reflected_min_v<E>, "nameof::enum_range requires max > min.");
constexpr auto size = reflected_max_v<E> - reflected_min_v<E> + 1; constexpr auto size = reflected_max_v<E> - reflected_min_v<E> + 1;
static_assert(size > 0, "nameof::enum_range requires valid size."); static_assert(size > 0, "nameof::enum_range requires valid size.");
static_assert(size < (std::numeric_limits<std::int16_t>::max)(), "magic_enum::enum_range requires valid size."); static_assert(size < (std::numeric_limits<std::int16_t>::max)(), "nameof::enum_range requires valid size.");
return static_cast<std::size_t>(size); return static_cast<std::size_t>(size);
} }
@ -415,7 +415,7 @@ constexpr std::size_t range_size() noexcept {
static_assert(is_enum_v<E>, "nameof::detail::range_size requires enum type."); static_assert(is_enum_v<E>, "nameof::detail::range_size requires enum type.");
constexpr auto size = max_v<E> - min_v<E> + 1; constexpr auto size = max_v<E> - min_v<E> + 1;
static_assert(size > 0, "nameof::enum_range requires valid size."); static_assert(size > 0, "nameof::enum_range requires valid size.");
static_assert(size < (std::numeric_limits<std::int16_t>::max)(), "magic_enum::enum_range requires valid size."); static_assert(size < (std::numeric_limits<std::int16_t>::max)(), "nameof::enum_range requires valid size.");
return static_cast<std::size_t>(size); return static_cast<std::size_t>(size);
} }