加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 你怎么能断言所有std :: vector都是一行中给定的大小?

发布时间:2020-12-16 10:18:17 所属栏目:百科 来源:网络整理
导读:我有一个方法接受sha1哈希的std :: vector作为字符串,其长度必须为20个字符.在单行中断言这个前提条件得到尊重将是很好的. void MyClass::setSha1Sums(const std::vectorstd::string sha1Sums){ assert(magic_oneliner_which_verifies_that_all_strings_are_
我有一个方法接受sha1哈希的std :: vector作为字符串,其长度必须为20个字符.在单行中断言这个前提条件得到尊重将是很好的.

void MyClass::setSha1Sums(const std::vector<std::string>& sha1Sums)
{
  assert(magic_oneliner_which_verifies_that_all_strings_are_20_chars_long);
  sha1Sums_ = sha1Sums;
}

解决方法

C 03,具有提升(> = 1.33):

std::find_if( sha1Sums.begin(),sha1Sums.end(),boost::bind( &std::string::size,_1 ) != 20U
                ) == sha1Sums.end();

请注意,!=是一个重载运算符,可以提升供应量,从而构建更复杂的绑定,使用基本的关系和逻辑运算符更简单.

http://www.boost.org/doc/libs/1_45_0/libs/bind/bind.html#operators

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读