/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * Copyright 2014-2018 Danny Robson */ #ifndef CRUFT_UTIL_STRINGID_HPP #define CRUFT_UTIL_STRINGID_HPP #include "view.hpp" #include #include namespace util { class stringid { public: typedef size_t id_t; /////////////////////////////////////////////////////////////////////// id_t add (std::string); //--------------------------------------------------------------------- template id_t add (util::view key) { return add ( std::string{ std::cbegin (key), std::cend (key) } ); } /////////////////////////////////////////////////////////////////////// id_t find (const std::string&) const; //--------------------------------------------------------------------- template id_t find (util::view key) const { return find ( std::string { std::cbegin (key), std::cend (key) } ); } /////////////////////////////////////////////////////////////////////// void clear (void); private: std::map m_map; }; } #endif