zoukankan      html  css  js  c++  java
  • C++的字符串格式化库

    这里向大家介绍一个C++的字符串格式化库,叫cpptempl,这个库支持对字符串格式的条件,循环,变量插入。看上去很不错,只不过其是基于boost库的。

    下面是一个例子:

    1
    2
    3
    4
    5
    6
    7
    8
    // The text template
    wstring text = L"I heart {$place}!" ;
    // Data to feed the template engine
    cpptempl::data_map data ;
    // {$place} => Okinawa
    data[L"place"] = cpptempl::make_data(L"Okinawa");
    // parse the template with the supplied data dictionary
    wstring result = cpptempl::parse(text, data) ;

    输出结果是:

    I heart Okinawa!

    是不是很方便?让我们看一个更复杂的例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // You'd probably load this template from a file in real life.
    wstring text = L"<h3>Locations</h3> <ul> "
        L"{% for place in places %}"
        L"<li>{$place}</li> "
        L"{% endfor %}"
        L"</ul>" ;
    // Create the list of items
    cpptempl::data_list places;
    places.push_back(cpptempl::make_data(L"Okinawa"));
    places.push_back(cpptempl::make_data(L"San Francisco"));
    // Now set this in the data map
    cpptempl::data_map data ;
    data[L"places"] = cpptempl::make_data(places);
    // parse the template with the supplied data dictionary
    wstring result = cpptempl::parse(text, data) ;

    输出结果是:

    <h3>Locations</h3>
    <ul>
    <li>Okinawa</li>
    <li>San Francisco</li>
    </ul>

    更为详细的说明请到这里:http://bitbucket.org/ginstrom/cpptemplate/wiki/Home

    Google也有一个类似的库叫ctemplate:http://code.google.com/p/google-ctemplate/ 提供相似的方法,你也可以试试看。与Google相对应的Java库叫Hapax:http://code.google.com/p/hapax/

  • 相关阅读:
    OS + Linux + zipTool / tar / tar.gz / zst
    project scm
    product wiki confluence
    script ActionScript / ColdFusion
    链表例题
    链表原理
    链表例题
    链表原理
    链表原理
    链表原理
  • 原文地址:https://www.cnblogs.com/alantu2018/p/8503727.html
Copyright © 2011-2022 走看看