メニュー
ブログ更新履歴
コンテンツ更新履歴
リンク
  • rlib-MML デモページ
  • MML (Music Macro Language) をコンパイルし、再生や標準MIDIファイル出力をブラウザ上で行える形にまとめています。
  • Magome
  • クラウドベースのMIDIシーケンサ
    音楽制作に興味のある方を対象に、スタンドアロンでも使え、ネットならではの面白さも兼ね備えた音楽制作アプリの提供を目指しています。
twitter
1: 2018-02-12 (月) 01:13:17 takatsuka ソース 2: 2019-05-15 (水) 12:01:00 takatsuka ソース
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


トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 5649, today: 2, yesterday: 3