草庐IT

non-open

全部标签

c++ - MSVC : modifiers not allowed on non-memberfunction

我在linux下编写了一个信号/插槽库(Codeprojectarticlehere),同时使用Clang3.5和GCC4.9进行编译。它在两个编译器上编译时都没有警告(也在3.4版和4.8版上)。当我完成所有工作并将文章发布到网上时,没过多久我就收到投诉说它不能在MSVC上工作。(VisualStudioExpress2013?对不起,我对版本控制系统不熟悉。)我把它安装在虚拟机中自己看了一下,发现它不会编译以下内容:templatestructRemoveCV;templatestructRemoveCV{usingType=R(Args...);};templatestructR

c++ - "Error C1083: Cannot open include file"但我有包含文件的路径

与thisquestion相关,我在用于测试DLL的控制台应用程序的代码中包含了一个头文件,但VisualStudio返回以下错误:errorC1083:Cannotopenincludefile:'myProject.h':Nosuchfileordirectory但我在附加包含目录中包含了myProject.h的文件夹路径。我还尝试在ConfigurationProperties->Debugging->Environment下输入它作为“PATH=”值。路径是:U:\SoftwareDevelopment\c++projects\myProject\myProject,进入那个文

c++ - libc++ 与 VC++ : Can non-UTF conversions be done with wstring_convert?

C++11的std::wstring_convert效果很好*用于标准UTF-8UTF-16/UCS2/UCS4转换。但是,当我尝试使用不是来自的构面实例化wstring_convert或wbuffer_convert时,它没有按预期工作://worksasexpectedstd::wstring_convert>ucs4conv;//Now,byanalogy,Iwanttotrythis:std::wstring_convert>gbconv(newstd::codecvt_byname("zh_CN.gb18030"));Clang++错误提示“在~wstring_convert

c++ - 隐式转换 : const reference vs non-const reference vs non-reference

考虑这段代码,structA{};structB{B(constA&){}};voidf(B){cout这compilesfine,运行良好。但是,如果我将f(B)更改为f(B&),它doesn'tcompile.如果我写f(constB&),它又是compilesfine,运行良好。原因和道理是什么?总结:voidf(B);//okayvoidf(B&);//errorvoidf(constB&);//okay对于每种情况,我想听听语言规范中的原因、基本原理和引用资料。当然,函数签名本身并没有错。A隐式转换为B和constB&,但不会转换为B&,这会导致编译错误。

c++ - 为什么不能实例化带有 "non const"复制构造函数的对,而没有实例化一对是可能的?

假设您有以下类(class):structA{A(){}A(A&)=delete;};intmain(){std::pairp1;return0;}以下代码将无法编译(使用-std=c++11和g++)并出现以下错误:/usr/include/c++/5/bits/stl_pair.h:Ininstantiationof‘structstd::pair’:test.cpp:13:23:requiredfromhere/usr/include/c++/5/bits/stl_pair.h:127:17:error:‘constexprstd::pair::pair(conststd::pa

c++ - 错误 : invalid initialization of non-const reference of type ‘bool&’ from an rvalue of type ‘std::vector<bool>::reference {aka std::_Bit_reference}’

为什么我会收到错误:从类型为“std::vector::reference{akastd::_Bit_reference}”的右值对类型为“bool&”的非常量引用进行无效初始化?vector>vis;bool&visited(intx,inty){returnvis[x][y];//error}据我所知,vector中的operator[]返回引用,所以它应该是一个左值,但它不起作用。我应该怎么做才能让它发挥作用? 最佳答案 那是因为std::vector不是它看起来的样子。std::vector有一个特化与类型bool-它是空间

c++ - OpenAL:如何创建简单的 "Microphone Echo"程序?

所以我想知道从默认麦克风读取数据并输出到默认扬声器的最短(就有效线路而言)开放AL代码是什么?我在VisualStudio2008下的windows7上开发 最佳答案 一个古老的问题,但这里有一个答案。如果我们真的想要简洁,它肯定可以被修剪,但这比100行有效行要少一点:#include//OpenALheaderfiles#include#includeusingstd::list;#defineFREQ22050//Samplerate#defineCAP_SIZE2048//Howmuchtocaptureatatime(af

c++ - 铿锵错误 : non-type template argument refers to function that does not have linkage -- bug?

我有一些非常简单的(C++11)代码,最新的clang(version3.4trunk187493)无法编译,但GCC编译正常。代码(下面)实例化函数模板foo使用局部函数类型Bar然后尝试将其地址用作类模板Func的非类型模板参数:templatestructFunc{};templateexterninlinevoidfoo(){usingFoo=Func>;}intmain(){structBar{};//function-localtypefoo();return0;}clang发出以下错误:error:non-typetemplateargumentreferstofunct

c++ - 重载运算符 : const vs non-const return type : any difference of performance?

如果我们去维基百科article关于C++运算符,我们有一个例子:Addition:a+b->TT::operator+(constT&b)const;因此运算符返回类型为T的非常量。如果我们看这个guideline作者说返回类型应该是const以避免以下语法:(a+b)=c现在假设我不介意这种语法,并考虑a和b是大数组。从“纯”性能的角度来看,返回类型中缺少const关键字是否会阻止编译器的优化(g++和带有-O3的英特尔icpc)?如果答案是"is",为什么? 最佳答案 这是一个有趣的问题。在C++03中,没有更好的机会使用这两

c++ - C1083 : Cannot open include file: math. h: 没有那个文件或目录

我遇到了一堆这样的错误,我已经走投无路了。在谷歌上找到了很多答案,但不幸的是没有一个有效我正在使用VisualStudio2012。它说找不到的所有文件都在我电脑的这个文件夹里C:\ProgramFiles\MicrosoftVisualStudio11.0\VC\include即使我右键单击include语句并单击“打开文档”,它也会将我带到文档,因此它清楚地存在并且可以看到我也尝试将目录添加到选项中的“其他目录”字段,但没有解决。如果我像这样使用包含完整路径的include语句:#include然后就可以了,但是如果math.h文件有任何include语句,我也需要添加它们的路径等