#ifndef SYMBOL_HPP_ #define SYMBOL_HPP_ #include "const_string.hpp" class symbol { public: static constexpr std::size_t invalid_index = std::size_t( 0 ) - 1 ; constexpr symbol( std::size_t symbol_end ) : m_end( symbol_end ) { } constexpr bool valid() { return m_end != invalid_index; } constexpr std::size_t end() { return m_end; } private: const std::size_t m_end; }; #endif