Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Mark xbt::string as a hack
[simgrid.git] / include / xbt / string.hpp
index 71f7545..1a2619a 100644 (file)
@@ -4,8 +4,13 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#ifndef SIMGRIC_XBT_STRING_HPP
-#define SIMGRIC_XBT_STRING_HPP
+#ifndef SIMGRID_XBT_STRING_HPP
+#define SIMGRID_XBT_STRING_HPP
+
+#include <simgrid_config.h>
+
+#include <string>
+#include <cstdarg>
 
 #if HAVE_MC
 
 #include <cstddef>
 #include <cstdlib>
 #include <cstring>
-#include <string>
 #include <iterator>
 
 #include <xbt/sysdep.h>
 
+#endif
+
 namespace simgrid {
 namespace xbt {
 
+#if HAVE_MC
+
 /** POD structure representation of a string
  */
 struct string_data {
@@ -28,9 +36,9 @@ struct string_data {
   std::size_t len;
 };
 
-/** A std::string with well-known representation
+/** A std::string-like with well-known representation
  *
- *  This is a (incomplete) drop-in replacement for `std::string`.
+ *  HACK, this is a (incomplete) replacement for `std::string`.
  *  It has a fixed POD representation (`simgrid::xbt::string_data`)
  *  which can be used to easily read the string content from another
  *  process.
@@ -279,21 +287,16 @@ bool operator>=(std::string const& a, string const& b)
   return b <= a;
 }
 
-}
-}
-
 #else
 
-#include <string>
+typedef std::string string;
 
-namespace simgrid {
-namespace xbt {
+#endif
 
-typedef std::string string;
+std::string string_vprintf(const char *fmt, va_list ap);
+std::string string_printf(const char *fmt, ...);
 
 }
 }
 
 #endif
-
-#endif