草庐IT

invoke-expression

全部标签

c++ - g++ 警告 : comparison of unsigned expression < 0 is always false

为了编译我的C++代码,我使用了-W标志,这会导致警告:warning:comparisonofunsignedexpression我认为这被认为是一个错误并已在GCC4.3版本中修复,但我使用的是GCC4.1这里明显有问题的代码:voidFieldGroup::generateCreateMessage(constApiEvent::GroupData&data,omsgstream&result)const{dblog=data.fields.length()){ostringstreambuf;buf警告我得到:dbtempl.cpp:Inmemberfunction‘voidE

C# 到 C 代码 P/INvoke 多个标准 :string declarations lead to stack corruption

我构建了一个带有外部导出的c++dll,以便从我的C#程序中调用它。对于大多数函数,调用工作得很好,但是当我需要将一些字符串从C#传递到C++时会出现问题。我将它们作为普通字符串传递,并作为constchar*接收。它们都很好,所有数据都在那里,但随后我继续从这些char数组中定义了几个字符串。代码继续没有任何问题,直到我退出函数。然后它抛出一个异常,说最后定义的std::string周围的堆栈已损坏,我真的不确定为什么会这样。我尝试了很多定义字符串的方法:复制它们、更改P/Invoke定义的编码。一些额外的信息我从定时器线程调用这个函数;我提到这个是因为我发现,线程上的std::st

c++ - 无法在 VS 14 CTP : conditional expression of type 'void' is illegal 中使用 auto 声明 lambda

使用VisualStudio2014CTP、C++(v140)编译器:autogp=[&](BYTE*buff){autogp1=[](char*bff,char**p1){*p1=strstr((char*)bff,"(");return(*p1);};};错误:conditionalexpressionoftype'void'isillegal(也许auto真的输入错误?)如果我将内部lambda声明为std::functiongp1然后就可以了是我做错了什么还是编译器错误? 最佳答案 我没有运行2014,但您可能需要指定内部l

c++ - 错误 C2893 : Failed to specialize function template 'unknown-type std::invoke(_Callable &&,_Types &&...) noexcept(<expr>)'

下面是一个给出编译时错误的程序。这主要与D类中的Boo函数有关。我最终尝试使用多个线程来调用solve方法,但目前这对我来说似乎不太有效,无法做到这一点。错误是:1>d:\dummy\project1\trash.cpp(37):warningC4101:'d':unreferencedlocalvariable1>c:\programfiles(x86)\microsoftvisualstudio\2017\community1\vc\tools\msvc\14.11.25503\include\thr\xthread(240):errorC2672:'std::invoke':no

c++ - Visual Studio C++ 2013 express 中的警告 c4819 - 没有 bom 的 utf8 文件

在visualstudioC++2013express中,似乎除非utf8编码文件有BOM标记,否则编译器无法理解正在编译的文件采用UTF8编码并将其视为采用native编码。而代码编辑器则没有这个问题。warningC4819:Thefilecontainsacharacterthatcannotberepresentedinthecurrentcodepage(932).SavethefileinUnicodeformattopreventdataloss是否有解决此问题的方法?我记得这是所有visualstudio版本中的常见问题,但我不记得曾经看到过修复程序。我不能一直为每个不

c++ - 'this' cannot be used in a constant expression error (C++)

全部。我有一个定义如下的类:classBoard{intcolumns,rows;boolboard[10][10];public:Board(int,int);voidnextFrame();voidprintFrame();};我的voidnextFrame()一直给我[rows][columns]的错误,因为对于它们两者来说“'this'不能在常量表达式中”。我怎样才能重新定义它以使其起作用?我明白这个错误。函数的定义如下,错误发生在以下代码示例的第3行。voidBoard::nextFrame(){intnumSurrounding=0;booltempBoard[rows][

C++ 模板元编程 : how to deduce type in expression pattern

我想要静态检查lambda的参数类型。我在下面编写了这段代码,它似乎产生了正确的结果。structB{};autolamBc=[](Bconst&b){std::coutconstexprautoArgType(R(ClosureType::*)(Arg)const)->Arg;templateusingArgType_t=decltype(ArgType(&T::operator()));//ArgType_tis"referencetoBconst"但是,我注意到,例如,标准库使用类模板特化从std::remove_reference中的引用类型中提取引用类型。所以我尝试了这种方法

c++ - 从命令行构建 Visual Studio Express 11 项目

到目前为止,我使用以下技术从命令行构建我的C++项目(目的:使用jenkins每晚构建,具有与“正常”项目相同的配置):devenvMySolution.sln/build"Release"/project"MyProject"或者,从一个快速版本:VCExpressMySolution.sln/build"Release"/project"MyProject"现在,我最近获得了用于桌面的VC11express,显然,它不是同一个可执行文件(我认为VCExpress.exe的等价物是WDExpress.exe,我错了吗?),它不是同一个命令行(它是某种东西像WDExpressMyPro

c++ - Visual Studio Express 2012 中未显示 TODO 项目

TODO列表项未显示在VisualStudioExpress2012forC++中。为什么未显示TODO列表项?以前有人问过这个问题,但没有一个答案能解决我的问题。我做了以下事情:我已经尝试过的:检查格式为://TODO测试检查任务列表下拉设置为评论确保包含评论的文件被打开并选中将EnumerateCommentTasks设置为Trueunder:Options->TextEditor->C/C++->Formatting->杂项->枚举评论任务重新启动应用解决方案:JBentley的第一个建议解决了这个问题。我缺少冒号,所以正确的格式是://TODO:text

如何使用Express-Validator在NodeJ中的每个输入类型字段上显示错误消息

IambegginerinnodejsandIamusingexpress-validatorlibrarytovalidateform.我想将错误消息透露显示到每个输入类型字段,而不是组明智的字段。目前,我的代码显示了组中的错误Nameisrequired!Emailisrequired!Emailiswrong!Mobileisrequired!========================================================================控制器代码employeeController.saveEmployee=function(req,re