メニュー
ブログ更新履歴
コンテンツ更新履歴
リンク
  • Magome
  • クラウドベースのMIDIシーケンサ
    音楽制作に興味のある方を対象に、スタンドアロンでも使え、ネットならではの面白さも兼ね備えた音楽制作アプリの提供を目指しています。
twitter
1: 2018-02-12 (Mon) 01:13:17 takatsuka source Cur: 2019-05-15 (Wed) 12:01:00 takatsuka source
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


Front page   Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 1537, today: 4, yesterday: 5