4#ifndef _Stroika_Foundation_Characters_Format_h_
5#define _Stroika_Foundation_Characters_Format_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
11#include "Stroika/Foundation/Common/Common.h"
12#include "Stroika/Foundation/Common/Concepts.h"
63 template <
typename CHAR_T>
73 constexpr FormatString (
const basic_string_view<CHAR_T>& s);
79 constexpr wstring_view
get ()
const;
85 constexpr qStroika_Foundation_Characters_FMT_PREFIX_::wstring_view
getx_ ()
const;
90 template <Common::StdCompat::formattable<
wchar_t>... ARGS>
91 [[nodiscard]]
inline String operator() (ARGS&&... args)
const;
92 template <Common::StdCompat::formattable<
wchar_t>... ARGS>
93 [[nodiscard]]
inline String operator() (
const locale& loc, ARGS&&... args)
const;
99 template <
typename CHAR_T>
101 template <
typename CHAR_T>
106 vector<wchar_t> fStringData_;
111#if !qCompilerAndStdLib_vector_constexpr_Buggy
115#if !qCompilerAndStdLib_vector_constexpr_Buggy
120 constexpr wstring_view
get ()
const;
121 constexpr qStroika_Foundation_Characters_FMT_PREFIX_::wstring_view
getx_ ()
const;
122 template <Stroika_Foundation_Common_formattable_FilterOnStringLitOp_BWA (Common::StdCompat::formattable<
wchar_t>)... ARGS>
123 [[nodiscard]]
inline String operator() (ARGS&&... args)
const;
124 template <Stroika_Foundation_Common_formattable_FilterOnStringLitOp_BWA (Common::StdCompat::formattable<
wchar_t>)... ARGS>
125 [[nodiscard]]
inline String operator() (
const locale& loc, ARGS&&... args)
const;
137 inline namespace Literals {
138#if !qCompilerAndStdLib_vector_constexpr_Buggy
151 template <
typename CHAR_T>
153 template <
typename CHAR_T>
186 String FormatV (
const wchar_t* format, va_list argsList);
187 [[deprecated (
"Since Stroika v3.0d6 - use _f format strings - not old style c format strings - use CString::Format for old style C "
188 "format strings")]]
String
189 Format (
const wchar_t* format, ...);
194 template <
typename CHAR_T, Common::StdCompat::formattable<
wchar_t>... ARGS>
196 template <
typename CHAR_T, Common::StdCompat::formattable<
wchar_t>... ARGS>
String is like std::u32string, except it is much easier to use, often much more space efficient,...
concept - trivial shorthand for variadic same_as A or same_as B, or ...
String VFormat(const FormatString< CHAR_T > &f, const Common::StdCompat::wformat_args &args)
same as std::vformat, except always uses wformat_args, and produces Stroika String (and maybe more - ...