草庐IT

constant-expression

全部标签

c++ - [conv]/6中语句 "The expression e is used as a glvalue if and only if the initialization uses it as a glvalue"的确切含义是什么

[conv]/6(重点是我的):Theeffectofanyimplicitconversionisthesameasperformingthecorrespondingdeclarationandinitializationandthenusingthetemporaryvariableastheresultoftheconversion.TheresultisanlvalueifTisanlvaluereferencetypeoranrvaluereferencetofunctiontype([dcl.ref]),anxvalueifTisanrvaluereferencetoob

c++ - Python -> C++ 习语 : Storing lambda expressions in a map/container

我正在学习C++(通过Qt4)利用我的python/pyqt4经验,但我似乎无法掌握将lambda表达式存储到容器中以用作回调的正确习惯用法。我有一个包含大量字段的结构。我想创建一个回调映射,可以以特定方式正确格式化字段。这是我想做的python等价物:fromPyQt4.QtCoreimportQVariant,QStringclassAType(object):def__init__(self):self.name="FOO"self.attr2="BAR"self.attr3="BAZ"#...callbacks={}callbacks['name']=lambdax:QVari

c++ - 有没有办法在 Visual Studio Express '12 项目中编译和运行单个 .cpp 文件?

我刚刚开始学习C++,我正在使用MicrosoftVisualStudioExpress2012。我开始了一个项目,我计划在其中拥有我所有的.cpp文件,但现在我遇到了一个问题,当我尝试编译和运行时一个特定的.cpp文件不起作用。VS似乎只是编译并运行其中包含主要功能的.cpp文件,它生成一个.exe并运行它。因此,由于我的第一个.cpp文件(包含main())是一个简单的helloworld程序,所以我现在尝试编译和运行时只会得到那个程序。我有另一个带有intage()函数的.cpp文件,它应该询问用户年龄然后输出它。它非常简单,我只想运行它以查看它的运行情况,但我不知道如何在我的项

c++ - const_cast 在常量表达式中有效吗? (C++14, C++17)

a遇到的具体问题是编译器处理它的方式存在一些不一致。例如这段代码(https://godbolt.org/z/08Z-zi):constexprautovalue=1;static_assert(*const_cast(&value),"valueshouldbe1");使用GCC、Clang和MSVC编译良好,但使用英特尔C++编译器19.0.1失败并出现以下错误:error:expressionmusthaveaconstantvaluestatic_assert(*const_cast(&value),"valueshouldbe1");据我所知,标准并未明确声明常量表达式中不允

c++ - Direct3D11(C++) : Updating Texture coordinates in constant buffer?

我正在尝试使用Direct3D制作一个相当基本的2D引擎。我制作了一个LoadImage()函数,它将图像的所有相当静态的行为存储在一个对象中。(着色器、顶点缓冲区、采样器等)我计划在常量缓冲区中使用矩阵定位顶点。但是,我还想有一个DrawImage()函数,它有一个参数来告诉纹理的哪一部分应该被绘制(剪裁),所以我必须更新纹理坐标。由于顶点缓冲区已经预定义,我想知道是否有一种方法可以通过发送到顶点着色器的常量缓冲区来更新纹理坐标?我希望我的问题足够清楚,如果您有任何疑问,请查看下面的代码。boolGameManager::GMLoadImage(Image*pImage,constc

c++ - 在 Visual C++ Express 2010 中链接和使用 libpq

我正在尝试从VisualC++2010Express访问Postgres数据库。我的机器上都有,但SQL调用根本不起作用。我搜索了很多网站。我认为这个版本的Express没有像非express版本(尤其是VisualC++2008)那样的任何默认数据库连接。我唯一能找到的是以下链接,我已经按照对VisualC++Express的项目属性区域的修改进行了修改。http://www.askyb.com/cpp/c-postgresql-example/当我尝试在那个网站上运行C++代码时,我收到错误提示它找不到函数。你知道我做错了什么吗?使用VisualC++Express2010以外的东

c++ - 错误 : expected primary-expression before ‘int’

我正在使用:gcc--版本gcc(Ubuntu4.9.2-0ubuntu1~14.04)4.9.2我正在尝试编译以下程序:#include#includeusingnamespacestd;intmain(){cout但是得到如下错误:g++-fcilkplusCilk_1.cppCilk_1.cpp:Infunction‘intmain()’:Cilk_1.cpp:9:12:error:expectedprimary-expressionbefore‘int’cilk_for(inti=0;i怎么了?谢谢 最佳答案 来自linkC

express 下搞一个 websocket 长连接

 1.安装模块npmi expressnpmi express-ws2.新建文件app.js安排源码 监听端口7777varexpress=require('express')varapp=express()require('express-ws')(app)varport=7777varclientObject={}app.ws('/',(client,req)=>{//连接varkey=req.socket.remoteAddress+"_"+req.socket.remotePortclientObject[key]={cli:client,heartBeat:1,}//消息client

c++ - 实现Matlab的冒号: operator in C++ expression templates class

我正在实现一个C++表达式模板库。我已经设置了一个适当的SubMatrixExpr类来收集矩阵中的元素,启用类似的语法B=SubMatrix(A,1,3,2,10);相当于Matlab的B=A(1:3,2:10);当然,Matlab的语法比我的要舒服得多。所以我的问题是有没有可能在C++中设置Matlab的冒号:运算符?非常感谢您。 最佳答案 简短的回答:没有。冒号不是有效的C++运算符,因此不能重载。即使可以,它仍然不可能轻松实现您的需求,因为它肯定会优先于逗号运算符,这将使您的表达式位于A((1:3),(2:10))行中。,如果

c++ - 常量变量与常量引用

在某些C++源代码中,我看到可以将表达式结果保存为常量。像这样:constint&x=y+1;这是什么意思?有这方面的文件吗?我找不到它..对我来说它似乎等同于:constintx=y+1;因为程序的结果保持不变。真的是等价的吗?如果是,为什么该语言允许第一种方式来编写它?看起来很困惑。如果不是有什么区别? 最佳答案 区别应该是结果是否被复制/移动。在第一种情况下:constint&x=y+1;y+1的值本质上是作为临时值保存的。然后我们初始化一个引用x到这个临时结果。在另一种情况下:constintx=y+1;我们计算y+1并用该