草庐IT

表达力

全部标签

c++ - 是否可以为不应编译的表达式表达 static_assert?

我想用以下形式表达一个static_assert:static_assert(expressionshouldnotcompile);让我添加一个完整的例子:templatestructA{};templatestructA{voida(){}};Ab;static_assert(!compile(b.a()));orstatic_assert(!compile(A::a()));因此,我们的想法是能够确保表达式(具有有效语法)不会被编译。如果可能的话,如果解决方案只使用C++11会更好。 最佳答案 好的,考虑到您问题的上下文有些模

c++ - 在概念定义中,是否允许在 requires 表达式之外出现替换失败?

考虑这段代码:#include#includetemplateconceptboolC1=std::is_same::value;templateconceptboolC2=C1()+std::declval())>;structA{};intmain(){std::cout;std::cout;return0;}GCC编译它fine并打印10。但是§14.10.1.2N4553的谓词约束[temp.constr.pred]说ApredicateconstraintisaconstraintthatevaluatesaconstantexpressionE(5.19).然后Afters

VS CUDA OpenCV编程 遇到gpu端核函数 应输入表达式的报错解决办法

文章目录前言一、报错二、解决办法1.操作2.外部调用总结前言最近在做开发时,用到了cuda和opencv结合的使用方法。其中,cuda能够提供的公式就那么多,所以打算自己写一个核函数来实现自己想要实现的算法。结果遇到了>>核函数调用的时候报错,提示应输入表达式。经过在网上查找,大家的解决办法基本上都说在cu文件中出现没事,可以通过。但是我这个就没法通过,经过最后的排查,找到了解决办法。一、报错报错例如如下代码“swap_image_kernel>>(src,dst,h,w);”就会报错为应输入表达式,因为编译器把这个当作C++的符号了。extern"C"voidswap_image(cuda:

c++ - 为什么下面的表达式表征缩小转换?

这个表达式可以在标准(N3797)的§8.5.4/7的例子中找到unsignedintui1={-1};//error:narrows鉴于§8.5.4/7及其第4个要点:Anarrowingconversionisanimplicitconversion:fromanintegertypeorunscopedenumerationtypetoanintegertypethatcannotrepresentallthevaluesoftheoriginaltype,exceptwherethesourceisaconstantexpressionwhosevalueafterintegr

c++ - 逗号运算符和 void 表达式

我遇到了这个代码片段1intreturn_printChar1(){//code//oops!noreturnstatement}intreturn_printChar2(){//codereturnprintf("Return");}intmain(){inti;//somemorecodei=return_printChar2();if((return_printChar1(),i)){printf("Gotcha");}}1:这不是现实生活中的例子。我的问题是“C和C++中是否明确定义了代码片段的行为?”我的看法:在C中,行为定义明确,因为6.5.17说Theleftoperan

std::greater 和 std::less 上的 C++11 条件表达式出现不同类型的错误

以下与条件表达式相关的代码:typedefunsignedcharuchar;uchardata[100];//assignsomethingtoarray[]hereuchar*start=data;uchar*end=data+100;boolcond=f();//f()couldreturntrueorfalseuchar*itr=std::upper_bound(start,end,uchar(20),cond?std::greater():std::less());遇到这样的错误:error:operandsto?:havedifferenttypes‘std::greate

QML- JavaScript 表达式在 QML 中使用

Q理论使用总结一、概述二、属性绑定中的JavaScript三、JavaScript在signalhandler中的应用四、独立函数中的JavaScript1.QML里面JavaScript的自定义方法2.定义在JavaScript文件中的函数3.将信号连接到JavaScript函数五、在应用程序启动代码中使用JavaScript一、概述QML提供的JavaScript的运行宿主环境可以运行有效的标准JavaScript功能,如条件运算符、数组、变量设置和循环。除了标准的JavaScript属性之外,QMLGlobal对象还包含一些辅助方法,用于简化构建ui以及与QML环境交互的过程。QML提供

c++ - '变量名'不能出现在常量表达式c++中

有人知道这个错误的实际含义吗?我被一些似乎无法绕过它的代码绊倒了。我试过只用h*2而不是hprime,只用w*2而不是wprime。每次我得到相同的编译器(g++编译器)错误:grid.cpp:在构造函数‘Grid::Grid(int,int)’中:grid.cpp:34:错误:'hprime'不能出现在常量表达式中(编译器并不总是说hprime,它会说那里的任何变量,无论是h还是hprime或width)。任何帮助将不胜感激!classGrid{public:Grid(intx,inty);~Grid();voidaddObstacle(intw,inth);voidtoString

c++ - 将 size() 用于 for 构造中的第二个表达式总是不好的吗?

在下面的示例中,我是否应该期望每次循环时都会调用values.size()?在这种情况下,引入一个临时的vectorSize变量可能是有意义的。或者现代编译器是否应该能够通过识别vector大小不能改变来优化调用。doublesumVector(conststd::vector&values){doublesum=0.0;for(size_tii=0;ii请注意,我不关心是否有更有效的方法来对vector的内容求和,这个问题只是关于在for结构中使用size()。 最佳答案 这是一种明确的方法-size()只被调用一次。for(si

c++ - 缩小从 `int`(常量表达式)到 `unsigned int` 的转换 - MSVC vs gcc vs clang

constexprinti=100;structF{F(unsignedint){}};intmain(){F{i};}上面的代码片段:使用-Wall-Wextra-Wpedantic在g++7上编译没有警告。使用-Wall-Wextra-Wpedantic在clang++4上编译没有警告。无法在MSVC2017上编译:conversionfrom'constint'to'unsignedint'requiresanarrowingconversion问:这里MSVC是不是错了?liveexampleongodbolt.orginti=100;structF{F(unsignedint