cemu-vcpkg/toolsrc/include/vcpkg/base/stringliteral.h
2018-01-17 19:38:17 -08:00

27 lines
618 B
C++

#pragma once
#include <vcpkg/base/cstringview.h>
namespace vcpkg
{
struct StringLiteral
{
template<int N>
constexpr StringLiteral(const char (&str)[N]) : m_size(N), m_cstr(str)
{
}
constexpr const char* c_str() const { return m_cstr; }
constexpr size_t size() const { return m_size; }
operator CStringView() const { return m_cstr; }
operator std::string() const { return m_cstr; }
private:
size_t m_size;
const char* m_cstr;
};
inline const char* to_printf_arg(const StringLiteral str) { return str.c_str(); }
}