From 6ec0c7c6c4bb341926c45db99e7287cce91a8da2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 12 Aug 2012 15:56:21 +0000 Subject: Stricter symbol construction and conversion. git-svn-id: http://svn.drobilla.net/lad/trunk/raul@4670 a436a847-0d15-0410-975c-d299462d15a1 --- raul/Symbol.hpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'raul/Symbol.hpp') diff --git a/raul/Symbol.hpp b/raul/Symbol.hpp index c2efbdc..469a4cf 100644 --- a/raul/Symbol.hpp +++ b/raul/Symbol.hpp @@ -45,7 +45,7 @@ public: * It is a fatal error to construct a Symbol from an invalid string, * use is_valid first to check. */ - Symbol(const std::basic_string& symbol) + explicit Symbol(const std::basic_string& symbol) : _str(g_intern_string(symbol.c_str())) { assert(is_valid(symbol)); @@ -56,12 +56,17 @@ public: * It is a fatal error to construct a Symbol from an invalid string, * use is_valid first to check. */ - Symbol(const char* csymbol) + explicit Symbol(const char* csymbol) : _str(g_intern_string(csymbol)) { assert(is_valid(csymbol)); } + Symbol& operator=(const Symbol& other) { + _str = other._str; + return *this; + } + inline const char* c_str() const { return _str; } inline bool operator==(const Symbol& other) const { @@ -78,7 +83,7 @@ public: static bool is_valid(const std::basic_string& symbol); - static std::string symbolify(const std::basic_string& str); + static Raul::Symbol symbolify(const std::basic_string& str); private: const char* _str; -- cgit v1.2.1