相关疑难解决方法(0)

输入字符串的特征

是否存在(在标准库中或在Boost中)类型特征来测试类型是否可以表示字符串?

我在使用Boost.Fusion时偶然发现了一个问题:

auto number = fusion::make_vector( 1, "one" );
auto numberName = fusion::filter< char const * >( number );

assert( numberName == fusion::make_vector( "one" ) ); // fails
Run Code Online (Sandbox Code Playgroud)

我希望filter保留"one",但它失败了因为"one"没有衰减到指针(make_vector通过引用获取它的参数,所以类型是const char (&)[4]).因此,我需要一个特性,允许我写这样的东西:

auto numberName = fusion::filter_if< is_string< mpl::_ > >( number );
Run Code Online (Sandbox Code Playgroud)

我知道a char const *和a const char[N]不一定是以null结尾的字符串,但是能够统一检测它们仍然很方便.这种特点也可能返回truestd::string和喜欢.

这样的特质是存在还是我必须自己编写?

c++ string traits c++11

3
推荐指数
2
解决办法
2922
查看次数

标签 统计

c++ ×1

c++11 ×1

string ×1

traits ×1