X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1679193978528bbb628e0f3a7853cddf4f3cfe0d..a79a8e1cab86ccc687cfbc97b01b735acb996f16:/include/xbt/string.hpp diff --git a/include/xbt/string.hpp b/include/xbt/string.hpp index 6bcf4c72ea..0c9221a542 100644 --- a/include/xbt/string.hpp +++ b/include/xbt/string.hpp @@ -11,6 +11,7 @@ #include #include +#include #if HAVE_MC @@ -88,10 +89,8 @@ public: string_data::data[string_data::len] = '\0'; } } - string() : string (nullptr, 0) {} - string(const char* s) - : string(s, s == nullptr ? 0 : strlen(s)) - {} + string() : string (const_cast(&NUL), 0) {} + string(const char* s) : string(s, strlen(s)) {} string(string const& s) : string(s.c_str(), s.size()) {} string(string&& s) { @@ -105,15 +104,15 @@ public: // Assign void assign(const char* s, size_t size) { - if (string_data::data != &NUL) + if (string_data::data != &NUL) { std::free(string_data::data); - if (size == 0) { - string_data::len = 0; string_data::data = nullptr; - } else { + string_data::len = 0; + } + if (size != 0) { string_data::len = size; string_data::data = (char*) std::malloc(string_data::len + 1); - memcpy(string_data::data, s, string_data::len); + std::memcpy(string_data::data, s, string_data::len); string_data::data[string_data::len] = '\0'; } } @@ -121,7 +120,7 @@ public: // Copy string& operator=(const char* s) { - assign(s, s == nullptr ? 0 : std::strlen(s)); + assign(s, std::strlen(s)); return *this; } string& operator=(string const& s) @@ -185,7 +184,7 @@ public: void clear() { string_data::len = 0; - string_data::data = (char*) &NUL; + string_data::data = const_cast(&NUL); } bool equals(const char* data, std::size_t len) const @@ -300,9 +299,18 @@ typedef std::string string; #endif -std::string string_vprintf(const char *fmt, va_list ap); +/** Create a C++ string from a C-style format + * + * @ingroup XBT_str +*/ std::string string_printf(const char *fmt, ...); +/** Create a C++ string from a C-style format + * + * @ingroup XBT_str +*/ +std::string string_vprintf(const char *fmt, va_list ap); + } }