/include/c++/4.1.2/bits/stl_vector.h:932: error: âbool ytl::std::operator==(int)â must have an argument/include/c++/4.1.2/bits/stl_vector.h: In function âbool ytl::std::operator==(int)â:
/usr/lib/gcc
我正在开发一个工具,它提供了在其提供的框架内编写小型c++代码的工具。该工具是基于windows和linux的。我们把代码写到窗户里。为了测试目的,首先在windows上进行编译。最后,执行linux构建,在linux上实际运行整个生产测试。我创建了一个具有以下签名的函数: long a=0, const以下是函数签
x;
这就是我认为会发生的事情:x被隐式地传递给一个bool,第一个否定被执行,然后最后一个否定被执行,所以一个强制转换和两个否定。我的问题是,与使用双重否定相比,不仅仅是转换为bool (执行int y = (bool)x;而不是int y = !!x)更快,因为您正在从执行中保存两个否定句。我可能错了,因为我在Linux内核中经常看到双重否定,但我不知道我的直觉哪里出了问题,也许你可以帮我解决问题。
这是我第一次尝试用C++编写任何稍微复杂的东西,我正在尝试构建一个共享库,我可以从Objective-C和.NET应用程序中与之交互(好的,这部分将在稍后...)我的密码是- // Mac Includes Here // Linux Includes Here#error Can't be compiled on Windows yet
#include &