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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |