热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(void)first2++在这里有什么意义?

如何解决《(void)first2++在这里有什么意义?》经验,为你挑选了1个好方法。

在en.cppreference的这一页上,有一些可能实现词典比较的例子.这是基本的:

template
bool lexicographical_compare(InputIt1 first1, InputIt1 last1,
                             InputIt2 first2, InputIt2 last2)
{
    for ( ; (first1 != last1) && (first2 != last2); first1++, (void) first2++ ) {
        if (*first1 <*first2) return true;
        if (*first2 <*first1) return false;
    }
    return (first1 == last1) && (first2 != last2);
}

类似于IIRC的行(void)some_argument;通常用于抑制有关未使用参数的编译器警告.但是在这个函数中,使用了包括first2在内的所有参数 - 那么(void) first2++在for语句中写入的重点是什么?

在InputIt1重载的情况下,它是一些语法解决方法operator,吗?



1> Alan Stokes..:

它确保使用内置的逗号运算符 - 以防万一有用户定义的重载执行意外操作.void类型的值永远不能传递给函数,因此这里不能选择这样的重载.

想象一下,如果存在这个功能会发生什么:

void operator , (InputIt1 const &, InputIt2 const &) { launch_missiles(); } 

编辑:这实际上是在相关的cppreference讨论页面上提到的.


推荐阅读
author-avatar
火柴没头518_410
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有