草庐IT

identifier-case-sensitivity

全部标签

c++ - 如何使用可变参数模板构建 switch-case

我想构建函数,例如:templateconstexprboolcheck(inti)noexcept{switch(i){casevalues[0]:casevalues[1]:...casevalues[n-1]://onlyillustrated.returntrue;default:returnfalse;}}我可以实现那个功能吗?更新:谢谢,现在我知道如何实现了:templatestructchecker;templatestructchecker{staticconstexprboolapply(inti)noexcept{returni==head||checker::ap

c++ - 为什么我不能在 switch-case block 中实例化对象

我的代码有3个类n_hexa、n_octa、n_bin。代码在这里switch(choice){case1:cin>>n;n_hexanx(n);break;case2:cin>>n;n_octano(n);break;case3:cin>>n;n_binnb(n);break;}在编译时,它会为n_octa行给出一条消息“crossesinitialisationofn_hexa” 最佳答案 如果您想在case中放置临时对象,则需要适本地确定它们的范围。switch(choice){case1:{cin>>n;n_hexanx(n

c++ - 错误 C2146 : syntax error : missing ';' before identifier

我无法摆脱这些错误...我检查的每个地方都有分号...代码很简单:该错误将我带到article.h中的定义“字符串名称”...主要.cpp#include#include#include#includeusingnamespacestd;#include"article.h"intmain(){stringsi;chararticle[128];vectorarticles;ifstreamfile;file.open("input.txt",ifstream::in);while(!file.eof()){file.getline(article,128);articles.push

c++ - 用户创建的 header 导致 C2061 : Syntax Error : Identifier 'classname'

所以,我有点希望这最终会成为一个简单的答案,但我已经研究了一段时间,但似乎无法解决这个问题。所以我有一个特定的类,Intersection,当包含在任何其他header中时,它会给我:错误C2061:语法错误:标识符“Intersection”这是我的路口标题:#ifndefINTERSECTION_H#defineINTERSECTION_H#include"Coord.h"#include"Road.h"#include"TrafficLight.h"classIntersection{private:intid;Coord*midPoint;Road*northRoad;Road

c++ - 错误 C3861 : 'rollDice' : identifier not found

我正在尝试实现一些图形,但我在调用最底部显示的函数introllDice()时遇到问题,我不确定如何解决这个问题?任何想法...我收到错误错误C3861:“rollDice”:找不到标识符。introllDice();voidCMFCApplication11Dlg::OnBnClickedButton1(){enumStatus{CONTINUE,WON,LOST};intmyPoint;StatusgameStatus;srand((unsigned)time(NULL));intsumOfDice=rollDice();switch(sumOfDice){case7:case11

c++ - 在 C++ 的 Switch-Case 中执行 OR

你会如何在C++中做到这一点?例如,如果用户按下ESC或“q”或“Q”,我将尝试触发程序退出。我曾尝试寻找它,但在C++中找不到它的语法。我知道如何用if-else来做,但是用switch-case有可能吗?当然,我可以只创建一个函数并从两个单独的case调用它,但是有没有一种方法可以仅通过组合case语句来做到这一点?例如这就是我正在寻找的(当然不工作):voidkeyboard(unsignedcharkey,intx,inty){switch(key){case(27||'q'||'Q'):exit(0);break;case'a':...case'b':...}}

c++ - 我怎样才能告诉 gcc 在不中断的情况下对 switch/case 语句发出警告(或失败)?

我有一个复杂的switch语句,我忘了在其中一个case的末尾放置一个break。这是完全合法的,因此我无法进入下一个案例。如果我忽略放置break语句,是否有任何方法让gcc发出警告(或者甚至更好,失败)?我意识到有许多有效的用例(我经常在我的代码中使用它们),如thisquestion中所示。,所以显然这样的警告(或失败)需要一个简单的豁免,这样我就可以轻松地说,“我确实想在这里失败。”有什么方法可以告诉gcc这样做吗? 最佳答案 在http://gcc.gnu.org/bugzilla/show_bug.cgi?id=7652

c++ - 为什么在另一个案例中允许在 block 内使用 case 语句?

这个问题在这里已经有了答案:Embeddingacaselabelinanif...elsestatement(2个答案)关闭5年前。我遇到过如下代码:switch(i){case2:{std::cout请注意,case2打开一个带有花括号的block,该block仅在case3之后关闭。起初,这似乎是一个会导致编译器错误的拼写错误,或者更糟的是,会忽略case3。但它在c++中工作得很好,如果我是3,则输出3。我来自java背景,所以我可能缺乏对c++中逻辑block的理解。所以我的问题是:这是故意的行为吗?

c++ - "undeclared identifier"实际声明

对于我在类头文件中声明为公共(public)数据成员的变量,一个int和一个指向该int的指针,我一直收到错误C2065s。仅当我在函数中使用这些变量时,才会将代码行标记为错误-在类的构造函数中,它们似乎可以顺利通过。我正在使用VisualStudio2010Express编写普通的C++(不是VisualC++),这里是编译器错误日志的输出:1>------Buildstarted:Project:Project2,Configuration:DebugWin32------1>BaseClassWithPointer.cpp1>d:\libraries\documents\scho

c++ - 比较优化构建与 switch case 和多态性

我需要对两种解决方案进行性能测试-一种使用多态来执行类型切换,另一种使用switchcase来选择要执行的某些函数。我真的需要优化这段代码。我写了下面的测试用例(你可以简单地复制粘贴代码,用g++-std=c++14-O3编译它并用echo1|./a.out运行它!)如果你读了它,代码真的很简单!#include#include#include#include#include#include#includeusingnamespacestd;structprofiler{std::stringname;std::chrono::high_resolution_clock::time_p