glibmm 2.80.0
Public Member Functions | List of all members
Glib::UStringView Class Reference

Helper class to avoid unnecessary string copying in function calls. More...

#include <glibmm/ustring.h>

Public Member Functions

 UStringView (const Glib::ustring & s)
 
 UStringView (const char * s)
 
const char * c_str () const
 

Detailed Description

Helper class to avoid unnecessary string copying in function calls.

A Glib::UStringView holds a const char pointer. It can be used as an argument type in a function that passes a const char pointer to a C function.

Unlike std::string_view, Glib::UStringView shall be used only for null-terminated strings.

// can be used instead of
Glib::ustring f2(const Glib::ustring& s1, const Glib::ustring& s2);
Helper class to avoid unnecessary string copying in function calls.
Definition: ustring.h:118
Glib::ustring has much the same interface as std::string, but contains Unicode characters encoded as ...
Definition: ustring.h:336

The strings are not copied when f1() is called with string literals.

auto r1 = f1("string 1", "string 2");

To pass a std::string to a function taking a Glib::UStringView, you may have to use std::string::c_str().

std::string str = "non-UTF8 string";
Glib::ustring ustr = "UTF8 string";
auto r1 = f1(str.c_str(), ustr);
const char * c_str() const noexcept
Since glibmm 2.64:

Constructor & Destructor Documentation

◆ UStringView() [1/2]

Glib::UStringView::UStringView ( const Glib::ustring s)
inline

◆ UStringView() [2/2]

Glib::UStringView::UStringView ( const char *  s)
inline

Member Function Documentation

◆ c_str()

const char * Glib::UStringView::c_str ( ) const
inline