小编Jef*_*eff的帖子

Eclipse CDT:无法解析符号'cout'

错误如上.我应该在eclipse项目中包含所有必需的文件:

/usr/include/c++/4.6
/usr/include
/usr/include/linux
/usr/local/include
Run Code Online (Sandbox Code Playgroud)

等等

我尝试了std::cout,using namespace std; cout但它仍然没有解决.

我有进口iostreamcstdlib.

另外,我在Ubuntu 12.04上使用eclipse 3.7.2.

代码段:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include "XPLMDisplay.h"
#include "XPLMGraphics.h"

int XPluginStart(char * outName,  char * outSig,  char * outDesc) {
    /* ... */
    std::cout << "test" << std::endl;
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

using namespace std;


更新:我从现有代码创建了eclipse项目.创建一个新的c ++项目可以修复它.我会接受一个解释,解释现有项目中的设置可能导致这种情况(因此我不必剪切和粘贴所有项目).

c++ eclipse eclipse-cdt include include-path

59
推荐指数
4
解决办法
18万
查看次数

C++命名空间和模板

我有一些功能可以组合在一起,但不属于某个对象/实体,因此不能被视为方法.

所以,基本上在这种情况下我会创建一个新的命名空间并将定义放在一个header文件中,即文件中的实现cpp.另外(如果需要)我将在该cpp文件中创建一个匿名命名空间,并将所有不必公开/包含的其他函数放在我的命名空间接口中.

请参阅下面的代码(可能不是最好的示例,可以使用其他程序架构更好地完成,但我想不出更好的示例...)

示例代码(header)

namespace algorithm {
   void HandleCollision(Object* object1, Object* object2);
}
Run Code Online (Sandbox Code Playgroud)

示例代码(cpp)

#include "header"

// Anonymous namespace that wraps 
// routines that are used inside 'algorithm' methods
// but don't have to be exposed
namespace {
   void RefractObject(Object* object1) {
      // Do something with that object
      // (...)
   }
}

namespace algorithm {
   void HandleCollision(Object* object1, Object* object2) {
      if (...) RefractObject(object1);
   }
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.我想这是管理我的代码的好方法,但我不知道如果我有一些基于模板的函数并且想要做的基本相同,我该怎么办.

如果我使用模板,我必须将所有代码放在header …

c++ templates namespaces

7
推荐指数
1
解决办法
9591
查看次数

现代浏览器如何实现JS Array,特别是添加元素?

我的意思是,当调用.push()一个Array对象时,JavaScript会增加底层"数组"的容量(元素数量).此外,如果有足够的资源来为JS查找此类信息,那么包含这些信息会很有帮助.

编辑

似乎JS数组就像具有特殊属性的对象文字.但是,我对更低层次的细节感兴趣 - 浏览器如何在各自的JS引擎中实现它.

javascript arrays

5
推荐指数
1
解决办法
1356
查看次数

WindowsSDK_IncludePath 宏缺失

正如标题所说。

我转到项目属性 -> VC++ 目录 -> 包含目录 -> 宏>>

它根本不在该列表中。结果是VS无法打开Windows.h。如何将此宏重置为其默认值(或根本设置它)?

visual-c++ windows-7 visual-studio-2013

5
推荐指数
1
解决办法
4486
查看次数

Visual Studio 2015代码覆盖错误的文件

我正在使用VS 2015 Enterprise,我运行了一个通用的单元测试来分析代码覆盖率.我正在查看每个函数的覆盖块列表,它们通常看起来是正确的.但是,当我右键单击一个方法 - >"转到源代码"时,在某些函数上它会转到源代码中的正确位置(相关的.cpp文件),但在其他函数上它会尝试打开头文件(源行号是正确的,但代码在.cpp文件中 - 而不是.h文件.这会影响源代码突出显示 - VS认为在.h中的功能未在.cpp中突出显示.我无法确定函数的任何差异(相同的可见性,相同的头文件和源文件),除了他们被调用的线程.知道为什么VS认为某些代码是.h而不是.cpp?

c++ code-coverage visual-studio visual-studio-2015

5
推荐指数
1
解决办法
445
查看次数

C++ 如何检查 std::ios 对象的真值?

当我运行代码时

istream s;
if (s)
  // ...
Run Code Online (Sandbox Code Playgroud)

我可以测试 istream(或任何 ios 对象)的真值。根据我的理解,这是因为 ios 定义operator!函数的方式。(供参考,http://www.cplusplus.com/reference/ios/ios/operatornot/。)我的问题是:为什么将sif 语句放入上面,导致operator!函数被评估?作为第二个问题,如果我在 if 语句中只放入任何对象,C++ 将使用哪些可能的方法来评估其真实性?

c++ iostream casting boolean

4
推荐指数
1
解决办法
978
查看次数

Emacs子字模式不起作用

在我的Emacs中,init.el我只有一行(setq subword-mode t)。当我使用M-f和这样M-b的词时,WriteToFile它不会在子词之间移动点。当我这样做时,M-x subword-mode它将禁用它,因此它处于打开状态。当我重新启用它时,它可以工作。

emacs

3
推荐指数
1
解决办法
397
查看次数

为ARM体系结构编译Ada

有没有人知道将在ARM(Linux)上编译Ada的编译器?最好是至少编译2005年的Ada.

compiler-construction embedded ada

2
推荐指数
1
解决办法
651
查看次数