草庐IT

可变性

全部标签

c++ - 有什么办法可以在 C++ 中使可变长度数组成为全局数组吗?

我在一个函数中创建了一个可变长度数组,但是我需要在第二个函数中引用这个数组。当我将声明放在main()上方时出现问题,因为它的长度尚未定义,我的编译器生气了。人们通常如何处理这件事?编辑:到目前为止,这是我的代码。我需要使数组的name[]midterm[]和final[]成为全局的。它们都在student_input()中。#includeusingnamespacestd;voidstudent_input();voidstudent_output();inti,ns;main(){intwidth,height,mult;cout>ns;i=0;while(i>si_name;n

c++ - 在 c/c++ 中处理可变大小数组的最佳实践?

如果我有一个固定大小的数组,具体取决于它的定义和使用方式,我通常会使用两种方法之一来引用它。数组类型1:由于它是基于定义的固定大小,我只是在引用它的所有循环中使用该定义。#defineMAXPLAYERS4intplayerscores[MAXPLAYERS];for(i=0;i数组类型2:由于这个数组可以随着项目的添加而增长,我使用sizeof来计算其中的条目数。大小将由编译器转换为常量,因此以这种方式进行不会有任何运行时损失。typedefstruct{fields....}MYSTRUCT_DEF;MYSTRUCT_DEFmystruct[]={{entry1},{entry2}

c++ - using 声明的可变参数扩展

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:usingdeclarationinvariadictemplate我最近遇到了agenericmechanism用于组合两个函数对象以形成一个新的函数对象,其行为就像前两个被重载一样:templatestructoverload:publicF1,publicF2{overload(F1f1,F2f2):F1(f1),F2(f2){}usingF1::operator();usingF2::operator();};我正在尝试将这个想法扩展到适用于N个函数对象,使用可变参数模板:templatestruct

c++ - 使用函数重载的可变模板参数时模板模式匹配不明确

这应该是可变参数模板的常见情况,例如当树行走子项是可变参数模板时。我找到了许多相关的问题和答案,但它们要么是关于稍微不同的事情,要么是同一件事,但我没有明白。现在问题来了。我有一个像这样的非可变元组templatestructX;我正在重载函数以具有特定的行为,具体取决于此类元组的第一个元素是指针类型还是vector指针类型。这很好用,但如果我将模板参数打包到一个可变参数模板参数中,那么重载就会变得不明确。这是错误消息:variadic.cpp:42:17:error:ambiguousoverloadfor‘operator编译器应该更喜欢X*,T*...>在X当它试图匹配vecto

c++ - 推断可变参数模板的参数类型?

有没有一种方法可以推断列表的类型以避免必须传递列表应该是的参数类型,只需从第一个元素类型推断它。templatestructCalc{//dostuffwithArgs};//Usage:Calc::value;typenameCalc{};//errorTundefined//Desired:Calc::value;//autodeducedT=intCalc::value;//autodeducedT=float有什么方法可以获得所需的行为,还是我必须将类型作为参数包含在内? 最佳答案 按照Quentin的建议,这里有一个类示例

c++ - 未在可变函数模板中推导出上下文

据我所知,下面的代码应该是“未推导上下文”(或者不是?)templatevoidf(X...args,Yy){}intmain(){f(12);f(1,2,3,4);}但是g++4.9为main中f的两个实例编译它...谁能解释一下? 最佳答案 第一个电话f(12)是病式的。根据[temp.deduct.type]/p5.7,未出现在参数声明末尾的参数包是非推导上下文:Thenon-deducedcontextsare:—[..]—Afunctionparameterpackthatdoesnotoccurattheendofthe

c++ - 将可变参数模板链接在一起

如果将以下代码中的X转换为使用C++11可变参数模板,并且应该支持任意数量的模板参数,它会是什么样子?templatestructA{enumO{offset=OFFSET};enumS{size=2};};templatestructB{enumO{offset=OFFSET};enumS{size=4};};templatestructC{enumO{offset=OFFSET};enumS{size=10};};templateclassB0,templateclassB1,templateclassB2>structX:publicB0,B1::size*B0::offset>

c++ - 尝试构建任意深度树状结构的可变模板实例化中的无限递归

我正在对可变参数进行一些实验,我无意中遇到了一个我无法找到解决方案的问题-基本上我正在尝试构建一个包含任意数据类型组件的树-这里是一些代码:templatestructSeqExpression{constA&first;constB&then;};templateSeqExpressionmake_seq(constA&a,constB&b){return{a,b};}templateautomake_seq(constA&first,constB&second,T...rest)->decltype(make_seq(make_seq(first,second),rest...))

基于FPGA的可变模计数器VHDL代码Quartus仿真

名称:基于FPGA的可变模计数器VHDL代码Quartus仿真(文末获取)软件:Quartus语言:VHDL代码功能:可变模计数器1、可以通过按键切换为模10、模12、模24、模60计数器2、可以通过开关控制正计数还是倒计数(递增计数还是递减计数)1.工程文件2.程序文件3.程序编译4.RTL图5.仿真文件6.仿真图整体仿真图Key=00,sw=0,模10,递减计数Key=01,sw=0,模12,递减计数Key=10,sw=1,模24,递增计数Key=11,sw=1,模60,递增计数部分代码展示:LIBRARY ieee;   USE ieee.std_logic_1164.all;   US

UML 中的 C++11 可变模板参数表示法

有谁知道如何在UML2.2中正确建模C++11可变模板参数?作为网络搜索的结果,我看到了许多UML配置文件模型,它们似乎描述了“任意数量的可选模板参数”的构造。或者我是否只是将此与声明中提供默认值时任何常用模板参数都可能是可选的事实混淆?有人可以引用UML2.2/2.3规范的适当链接或特定部分吗?这是我用enterprise-architect创建的提案:更新:我对如何为解包机制的绑定(bind)建模特别感兴趣。 最佳答案 好吧,因为似乎没有人有答案,我将用我想出的答案来回答我的问题:这只是我在问题中给出的第一个提案的一个略微修改的