草庐IT

if-cases

全部标签

if语句—超详解

目录语法结构: ps:表达式详解:ps:单条语句与多条语句:ex:下面我们写几个例子来加深一下理解:if语句是分支语句(循环结构)的一种:语法结构:1.if(表达式)  语句;#includeintmain(){intage=0;scanf("%d",&age);if(age 当age满足 2.if(表达式)  语句1;else  语句2;#includeintmain(){intage=0;scanf("%d",&age);if(age当age满足条件否则,就会执行else下面的语句,打印出"成年"。  3.//多分支if(表达式1)    语句1;elseif(表达式2)3.    语句2

c++ - gnu c++ 中是否有 __if_exists 的等价物?

__if_exists是微软特定的关键字,用于在编译时测试标识符是否存在:msdn:__if_exists它在“伪造的”模板特化方面非常有用,因为在某些情况下,它提供了一种比“真正的”特化或重载等其他方法更简单、可读且性能更好的方法。但现在我必须将一个大项目移植到gnuc++,我想如果我不得不为我使用它的(诚然很少的)场合找到其他方法,我会开始有点哭泣 最佳答案 在我看来,这是一个蹩脚的关键字......不幸的是,据我所知,它不存在于gcc中,但我可能根本不知道它。处理此问题的正确C++方法是通过使用概念,即根据某些要求调整类型上执

c++ - 警告 LNK4099 : PDB 'vc100.pdb' was not found also if the file is there

我正在尝试使用VisualStudio编译Qt4.8.6项目(我使用的是用于Qt4.8.6的visualstudio插件)。我在调试和Release模式(-debug-and-release)下静态(-static)编译了这些库,没有出现任何错误。我收到这些错误:QtGuid.lib(jaricom.obj):warningLNK4099:PDB'vc100.pdb'wasnotfoundwith'QtGuid.lib(jaricom.obj)'orat'C:\MyProject\debug\vc100.pdb';linkingobjectasifnodebuginfo1>QtGuid

C++ : how do I use type_traits to determine if a class is trivial?

在C++0x中,我想确定一个类是否简单/是否具有标准布局,以便我可以使用memcpy()、memset()等...我应该如何使用type_traits实现下面的代码,这样我才能确认一个类型是微不足道的?templateboolisTrivialType(){boolisTrivial=???returnisTrivial;}注意:is_pod()限制太多:我希望我的类有简单的构造函数等......为了方便。补充:我认为std::is_standard_layout可能会给我我正在寻找的东西。1.如果我添加构造函数,它仍然返回true2.如果我添加一个虚方法,它返回false这是我需要确

c++ - 在 C++ 中伪造静态 If

我正在测试各种优化的组合,对于这些我需要一个static-if,如http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Static-If-I-Had-a-Hammer中所述。启用和禁用特定优化。if(const-expr)并不总是有效,因为一些优化涉及更改数据布局,这不能在函数范围内完成。基本上我想要的是:templateclassAlgo{structFoo{inta;if(enable_optimization){intb;}voidbar(){if(enable_optimization){b=0;}}};};

c++ - 为什么 std::remove_if 创建这么多闭包?

在此示例中,foo实例除了打印它是复制构造的还是移动构造的之外什么都不做。#include#include#includestructfoo{foo()=default;foo(foo&&){std::coutv;//emptystd::remove_if(v.begin(),v.end(),[x=std::move(x)](inti){returnfalse;});}这会产生以下输出:moveconstructedcopyconstructedmoveconstructedmoveconstructedcopyconstructedcopyconstructed问题:为什么std::

c++ - 是否可以使用 std::enable_if 来选择成员模板特化?

给定一个类声明classA{templateTfoo();};我想专攻A::foo对于int的各种类型(T,...)和类型类(POD,非POD).不幸的是,我似乎无法使用std::enable_if对于后者。以下不编译:templateintA::foo();//OKtemplatetypenamestd::enable_if::value,T>::typefoo();//typenamestd::enable_if::value,T>::typefoo();//问题可能是由于std::enable_ifstuff是函数签名的一部分,我没有在A中声明任何这样的成员.那么如何根据类型特征

c++ - 如果 vector 是特定长度,则使用 C++11 std::enable_if 启用成员函数

我正在编写一个简单的vector类,我希望有一些成员函数只能在特定长度的vector中使用(例如3元素vector的叉积)。我偶然发现了std::enable_if,看起来它可以做我想做的事,但我似乎无法让它正常工作。#include#includetemplateclassVector{private:Tdata[L];public:Vector(void){for(unsignedinti=0;i::type,L>cross(constVector&vec2)const{Vectorresult;result(0)=(*this)(1)*vec2(2)-(*this)(2)*vec

c++ - 相当于 D 中的 remove_if

最近对D语言产生了兴趣。我刚开始学习它,并且来自C++背景。我想知道是否有std::remove_if的等价物。我只在dlang网站上看到删除查看文档。如果没有直接等价物,在D中实现相同结果的正确或最惯用的方法是什么?编辑:我应该补充一点,我是在erase-remove的背景下思考的 最佳答案 有std.algortihm.remove(pred,Range)(Range)(往页面下方看一点)它会按照您的要求进行操作 关于c++-相当于D中的remove_if,我们在StackOverf

c++ - 使用 try-Catch 异常处理程序和 if else 条件检查之间的区别?

这个问题在这里已经有了答案:IsthereageneralconsensusintheC++communityonwhenexceptionsshouldbeused?[closed](11个答案)关闭9年前。我在很多地方都使用过if...else语句,但是我对异常处理还是陌生的。这两者的主要区别是什么?例如:int*ptr=new(nothrow)int[1000];if(ptr==NULL){//Handleerrorcaseshere...}或try{int*myarray=newint[1000];}catch(exception&e){cout所以我们在这里使用标准异常类,它