Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. // Usage:
  2. // void fn(const string_type& str) {
  3. // std::cout << str << '\n';
  4. // }
  5. struct string_type : std::string_view
  6. {
  7. // Takes const char*, std::string, std::string_view
  8. template <class T, class = std::enable_if_t<
  9. std::is_constructible_v<std::string_view, const T&>
  10. >>
  11. string_type(const T& str) noexcept
  12. : std::string_view(str)
  13. { }
  14.  
  15. // Takes literal string
  16. template <size_t N>
  17. string_type(const char (&str)[N]) noexcept
  18. : std::string_view(str, N - 1)
  19. { }
  20.  
  21. // Takes QString
  22. string_type(const QString& str) noexcept
  23. : qba(str.toLocal8Bit()) {
  24. this->operator=(std::string_view(qba->data(), qba->size()));
  25. }
  26.  
  27. private:
  28. std::optional<QByteArray> qba;
  29. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement