static_string.hpp 776 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // This file is distributed under the BSD License.
  2. // See "license.txt" for details.
  3. // Copyright 2009-2012, Jonathan Turner ([email protected])
  4. // Copyright 2009-2017, Jason Turner ([email protected])
  5. // http://www.chaiscript.com
  6. #ifndef CHAISCRIPT_UTILITY_STATIC_STRING_HPP_
  7. #define CHAISCRIPT_UTILITY_STATIC_STRING_HPP_
  8. namespace chaiscript
  9. {
  10. namespace utility
  11. {
  12. struct Static_String
  13. {
  14. template<size_t N>
  15. constexpr Static_String(const char (&str)[N])
  16. : m_size(N-1), data(&str[0])
  17. {
  18. }
  19. constexpr size_t size() const {
  20. return m_size;
  21. }
  22. constexpr const char *c_str() const {
  23. return data;
  24. }
  25. const size_t m_size;
  26. const char *data = nullptr;
  27. };
  28. }
  29. }
  30. #endif