1: 2018-02-12 (月) 01:13:17 takatsuka[6] [7] | 2: 2019-05-15 (水) 12:01:00 takatsuka[6] [8] | ||
---|---|---|---|
Line 14: | Line 14: | ||
開発者の方に感謝しつつ使わせていただこうと思います。 | 開発者の方に感謝しつつ使わせていただこうと思います。 | ||
+ | * コード [#rad4fc7a] | ||
#prettify{{ | #prettify{{ | ||
namespace String | namespace String | ||
Line 22: | Line 23: | ||
return format.str(); | return format.str(); | ||
} | } | ||
+ | |||
+ | #ifdef _MSC_VER // VisualC++ の CString 対応 | ||
+ | template <class CharT,class... Tail> std::basic_string<CharT> Format(boost::basic_format<CharT> &format,CStringA& head,Tail&&... tail) | ||
+ | { | ||
+ | return Format<CharT>( format % std::basic_string<CharT>(head), tail... ); | ||
+ | } | ||
+ | template <class CharT,class... Tail> std::basic_string<CharT> Format(boost::basic_format<CharT> &format,const CStringA& head,Tail&&... tail) | ||
+ | { | ||
+ | return Format<CharT>( format % std::basic_string<CharT>(head), tail... ); | ||
+ | } | ||
+ | template <class CharT,class... Tail> std::basic_string<CharT> Format(boost::basic_format<CharT> &format,CStringW& head,Tail&&... tail) | ||
+ | { | ||
+ | return Format<CharT>( format % std::basic_string<CharT>(head), tail... ); | ||
+ | } | ||
+ | template <class CharT,class... Tail> std::basic_string<CharT> Format(boost::basic_format<CharT> &format,const CStringW& head,Tail&&... tail) | ||
+ | { | ||
+ | return Format<CharT>( format % std::basic_string<CharT>(head), tail... ); | ||
+ | } | ||
+ | #endif | ||
template <class CharT,class Head,class... Tail> std::basic_string<CharT> Format(boost::basic_format<CharT> &format,Head&& head, Tail&&... tail) | template <class CharT,class Head,class... Tail> std::basic_string<CharT> Format(boost::basic_format<CharT> &format,Head&& head, Tail&&... tail) | ||
Line 30: | Line 50: | ||
template <class CharT,class... Args> std::basic_string<CharT> Format(const CharT *lpszFormat,Args&&... args) | template <class CharT,class... Args> std::basic_string<CharT> Format(const CharT *lpszFormat,Args&&... args) | ||
{ | { | ||
- | boost::basic_format<CharT> format(lpszFormat); | + | boost::basic_format<CharT> format; |
- | format.exceptions( boost::io::no_error_bits ); // 例外を発生させない | + | format.exceptions( boost::io::no_error_bits ); // 例外を発生させない |
+ | format.parse(lpszFormat); | ||
return Format<CharT>(format,args...); | return Format<CharT>(format,args...); | ||
} | } | ||
Line 50: | Line 71: | ||
const std::string s2b = "1JZ-GTE"; | const std::string s2b = "1JZ-GTE"; | ||
std::string s2c = String::Format( "%s jzx90 %s", s2a, s2b ); // s2c = "トヨタ jzx90 1JZ-GTE" std::string をそのまま書けます。 c_str() は不要です。便利! | std::string s2c = String::Format( "%s jzx90 %s", s2a, s2b ); // s2c = "トヨタ jzx90 1JZ-GTE" std::string をそのまま書けます。 c_str() は不要です。便利! | ||
+ | |||
+ | CString t0(_T("マツダ")); | ||
+ | const CString t1(_T("13B-T")); | ||
+ | auto tr = RLib::String::Format(_T("%s FC3S %s"),t0,t1); // tr = _T("マツダ FC3S 13B-T") vc の CString版 | ||
+ | |||
} | } | ||
}} | }} | ||
+ | |||
+ | * 追記履歴 [#p57d9c21] | ||
+ | - CString 対応コードを追加しました 2019/5/15 |
(This host) = https://thinkridge.com