本文整理汇总了C++中Traits::isctype方法的典型用法代码示例。如果您正苦于以下问题:C++ Traits::isctype方法的具体用法?C++ Traits::isctype怎么用?C++ Traits::isctype使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Traits
的用法示例。
在下文中一共展示了Traits::isctype方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
line_start_finder(Traits const &traits)
{
char_class_type newline = lookup_classname(traits, "newline");
for(int j = 0; j < 256; ++j)
{
this->bits_[j] = traits.isctype(static_cast<char_type>(static_cast<unsigned char>(j)), newline);
}
}
示例2:
inline void merge_charset
(
basic_chset<Char> &basic
, compound_charset<Traits> const &compound
, Traits const &tr
)
{
detail::ignore_unused(tr);
if(0 != compound.posix_yes())
{
typename Traits::char_class_type mask = compound.posix_yes();
for(int i = 0; i <= static_cast<int>(UCHAR_MAX); ++i)
{
if(tr.isctype((Char)i, mask))
{
basic.set((Char)i);
}
}
}
if(!compound.posix_no().empty())
{
for(std::size_t j = 0; j < compound.posix_no().size(); ++j)
{
typename Traits::char_class_type mask = compound.posix_no()[j];
for(int i = 0; i <= static_cast<int>(UCHAR_MAX); ++i)
{
if(!tr.isctype((Char)i, mask))
{
basic.set((Char)i);
}
}
}
}
if(compound.is_inverted())
{
basic.inverse();
}
}
示例3: set_class
void set_class(typename Traits::char_class_type char_class, bool no, Traits const &traits)
{
if(1 != sizeof(char_type))
{
// wide character set, no efficient way of filling in the bitset, so set them all to 1
this->set_all();
}
else
{
for(std::size_t i = 0; i <= UCHAR_MAX; ++i)
{
char_type ch = std::char_traits<char_type>::to_char_type(static_cast<int_type>(i));
if(no != traits.isctype(ch, char_class))
{
this->bset_.set(i);
}
}
}
}
示例4: is_word
bool is_word(Traits const &tr, char_type ch) const
{
detail::ignore_unused(tr);
return tr.isctype(tr.translate(ch), this->word_);
}
示例5: test_posix
///////////////////////////////////////////////////////////////////////////////
// test_posix
bool test_posix(char_type ch, Traits const &tr) const
{
not_posix_pred const pred = {ch, &tr};
return tr.isctype(ch, this->posix_yes_)
|| any(this->posix_no_.begin(), this->posix_no_.end(), pred);
}