openMSX
Classes | Public Member Functions | List of all members
static_string_view Class Reference

static_string_view More...

#include <static_string_view.hh>

Classes

struct  lifetime_ok_tag
 

Public Member Functions

template<size_t N>
constexpr static_string_view (char(&buf)[N])=delete
 
template<size_t N>
constexpr static_string_view (const char(&buf)[N])
 
constexpr static_string_view (lifetime_ok_tag, std::string_view v)
 

Detailed Description

static_string_view

This is like std::string_view, but points to a string with static lifetime (e.g. a string literal). In other words, the pointed-to-string is guaranteed to remain valid. This allows to store just a reference to the string instead of having to copy it into e.g. a std::string object.

The intention is that objects of this class can only be constructed from string-literals. For example constructing from std::string, std::string_view or 'const char*' will result in compile errors. (See unittest for more details).

In some (rare?) cases you may want something like this, but string literals are too restrictive. Using the 'make_string_storage()' function below might be a solution. But then the programmer takes responsibility of correctly managing lifetimes (then the c++ compiler doesn't help anymore).

Definition at line 27 of file static_string_view.hh.

Constructor & Destructor Documentation

◆ static_string_view() [1/3]

template<size_t N>
constexpr static_string_view::static_string_view ( char(&)  buf[N])
constexprdelete

◆ static_string_view() [2/3]

template<size_t N>
constexpr static_string_view::static_string_view ( const char(&)  buf[N])
inlineconstexpr

Definition at line 36 of file static_string_view.hh.

◆ static_string_view() [3/3]

constexpr static_string_view::static_string_view ( lifetime_ok_tag  ,
std::string_view  v 
)
inlineconstexpr

Definition at line 44 of file static_string_view.hh.


The documentation for this class was generated from the following file: