1: 2018-02-12 (月) 01:13:17 takatsuka |
2: 2019-05-15 (水) 12:01:00 takatsuka |
| 開発者の方に感謝しつつ使わせていただこうと思います。 | | 開発者の方に感謝しつつ使わせていただこうと思います。 |
| | | |
| + | * コード [#rad4fc7a] |
| #prettify{{ | | #prettify{{ |
| namespace String | | namespace String |
| 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) |
| 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...); |
| } | | } |
| 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 |