我从官方网站下载了MinGW并将其安装在我的Windows 8.1机器上.
运行g ++ --version给了我g ++.exe(GCC)4.8.1.
我正在尝试编译MinGW编译器中的现有代码库,但它失败并出现以下错误:
error: 'mutex' in namespace 'std' does not
name a type
private: std::mutex m_Mutex;
^
error: 'condition_variable' in namespace 's
Run Code Online (Sandbox Code Playgroud)
以及与锁定和线程相关的更多错误.
我能够在Cygwin-64中编译相同的代码库而没有任何问题.我需要在MinGW中成功构建和编译,以便创建一些在MSVS上兼容的.dll文件.
我已经提到了以下链接,但我无法通过解决方案.
使用mingw和g ++使用std :: thread/mutex在Win7下工作4.7.2
MinGW 4.8.1 C++ 11线程支持
非常感谢您的帮助.谢谢.
我一直试图理解下面的代码片段,但并不完全得到输出背后的逻辑.
int Func(int x, int y){
if (x < y)
return 0;
else
return Func(x - y, y) + 1;
}
int main()
{
int x = 50, y=10;
printf("%d \n",Func(x,y));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面程序的输出显然是5.任何人都可以告诉我递归类型方法实际上意味着什么"+1"(in return Func(x - y, y) + 1;)以及它如何有执行流程.
如果我只是执行return Func(x-y,y);然后输出为0,这很好.但是为什么第一种情况下输出为5?
我知道c ++中复制构造函数的一般语法会引用.但是,我怀疑如果我们使用指针类型而不是引用会发生什么?为什么我们不在Copy构造函数中使用pass by pointer机制?它有哪些主要缺点?
我在c ++中经历了dynamic_cast概念.
假设我们有一个dynamic_cast和2个派生类class Base,class D1它们派生自class D2
Class Base,它有一个虚函数Base.
我的问题是:
1.upcast和downcast都可以在dynamic_cast中完成吗?
2.如果是,哪一个更优先,更有利.在这种情况下,我们可以在这方面进行贬低/上调?
3.是否推荐任何演员表或有害?
请在考虑上述情况的情况下解释相同的用例,以便对此有更清晰的了解.任何明确的解释都会非常有用.
提前致谢.
c++ ×4
c++11 ×2
c ×1
constructor ×1
dynamic-cast ×1
inheritance ×1
mingw ×1
recursion ×1
virtual ×1
visual-c++ ×1