| 
    HDK
    
   | 
 
#include <ustring.h>
Public Types | |
| using | rep_t = ustring::hash_t | 
| The underlying representation type.  More... | |
| using | hash_t = ustring::hash_t | 
| The hash type.  More... | |
Public Member Functions | |
| OIIO_HOSTDEVICE constexpr | ustringhash () noexcept | 
| ~ustringhash () noexcept=default | |
| ustringhash destructor.  More... | |
| OIIO_HOSTDEVICE constexpr | ustringhash (const ustringhash &str) noexcept | 
| Copy construct a ustringhash from another ustringhash.  More... | |
| ustringhash (const ustring &str) noexcept | |
| Construct from a ustring.  More... | |
| OIIO_DEVICE_CONSTEXPR | ustringhash (const char *str) | 
| Construct a ustringhash from a null-terminated C string (char *).  More... | |
| OIIO_DEVICE_CONSTEXPR | ustringhash (const char *str, size_t len) | 
| OIIO_DEVICE_CONSTEXPR | ustringhash (string_view str) | 
| OIIO_HOSTDEVICE constexpr | ustringhash (hash_t hash) noexcept | 
| operator string_view () const noexcept | |
| Conversion to an OIIO::string_view.  More... | |
| operator std::string () const noexcept | |
| Conversion to std::string (explicit only!).  More... | |
| OIIO_HOSTDEVICE constexpr  const ustringhash &  | operator= (const ustringhash &str) | 
| Assign from a ustringhash.  More... | |
| const ustringhash & | operator= (const ustring &str) | 
| Assign from a ustring.  More... | |
| OIIO_HOSTDEVICE void | clear () noexcept | 
| Reset to an empty string.  More... | |
| const char * | c_str () const noexcept | 
| Return a pointer to the characters.  More... | |
| const char * | data () const noexcept | 
| Return a C string representation of a ustring.  More... | |
| const std::string & | string () const noexcept | 
| Return a C++ std::string representation of a ustring.  More... | |
| size_t | length () const noexcept | 
| Return the number of characters in the string.  More... | |
| OIIO_HOSTDEVICE constexpr hash_t | hash () const noexcept | 
| Return a hashed version of the string.  More... | |
| size_t | size () const noexcept | 
| Return the number of characters in the string.  More... | |
| OIIO_HOSTDEVICE constexpr bool | empty () const noexcept | 
| OIIO_HOSTDEVICE constexpr bool | operator== (const ustringhash &str) const noexcept | 
| Test for equality with another ustringhash.  More... | |
| OIIO_HOSTDEVICE constexpr bool | operator!= (const ustringhash &str) const noexcept | 
| Test for inequality with another ustringhash.  More... | |
| OIIO_CONSTEXPR17 bool | operator== (const char *str) const noexcept | 
| Test for equality with a char*.  More... | |
| OIIO_CONSTEXPR17 bool | operator!= (const char *str) const noexcept | 
| Test for inequality with a char*.  More... | |
| bool | operator== (const ustring &str) const noexcept | 
| Test for equality with a ustring.  More... | |
| bool | operator!= (const ustring &str) const noexcept | 
| Test for inequality with a ustring.  More... | |
| OIIO_HOSTDEVICE constexpr bool | operator< (const ustringhash &x) const noexcept | 
Static Public Member Functions | |
| static OIIO_NODISCARD  constexpr ustringhash  | from_hash (hash_t hash) | 
Friends | |
| class | ustring | 
| bool | operator== (const ustring &a, const ustringhash &b) noexcept | 
| bool | operator!= (const ustring &a, const ustringhash &b) noexcept | 
| std::ostream & | operator<< (std::ostream &out, const ustringhash &str) | 
A ustringhash holds the hash of a ustring in a type-safe way.
It has a nearly identical interface to a ustring, and still refers to a string in the internal ustring table. But whereas the representation of a ustring is the pointer to the characters, the representation of a ustringhash is the hash of the string.
For some uses where you don't need access to the characters in any performance-critical paths, this may be a more convenient representation. In particular, it's well suited to a GPU that doesn't have access to the character memory. Another interesting difference is that from run to run, a ustring may have a different literal value, since there's no reason to expect that the pointer to a string like "foo" will refer to the same memory location every time the program executes, but in contrast, the hash is guaranteed to be identical from run to run.
| using ustringhash::hash_t = ustring::hash_t | 
| using ustringhash::rep_t = ustring::hash_t | 
      
  | 
  inlinenoexcept | 
      
  | 
  defaultnoexcept | 
ustringhash destructor.
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlineexplicit | 
      
  | 
  inlineexplicit | 
      
  | 
  inlineexplicit | 
      
  | 
  inlineexplicitnoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinestatic | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlineexplicitnoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  inlinenoexcept | 
      
  | 
  friend | 
      
  | 
  friend | 
      
  | 
  friend |