草庐IT

03按键

全部标签

c++ - 如何确定一个类型在 C++03 中是否可取消引用?

在C++03中,如何确定类型T是否可解引用?我的意思是,如何静态确定*t是否是T类型的t的有效表达式?我的尝试:templatestructenable_if{};templatestructenable_if{typedefTtype;};unsignedchar(&helper(voidconst*))[2];templatetypenameenable_if(NULL)),unsignedchar>::typehelper(T*);templatestructis_dereferenceable{staticboolconstvalue=sizeof(helper(static_

c++ - 是否有 C++11 到 C++03 的转换器?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。是否有这样的工具能够将使用某些C++11功能的代码转换为C++03兼容代码(可能使用一些第三方库,如Boost)?

C++03 通过构造函数将 vector move 到类成员中( move 语义)

我只能访问C++03,而且我经常想像在C++11中那样将vectormove到函数中。如何做到这一点的问题不会过多地混淆代码的用户。所以我的问题是在C++11之前程序员是如何做到的。我知道可以使用交换函数“move”vector。所以这就是我想出的:classFoo{public:Foo(std::vector&vec){usingstd::swap;swap(vec,m_vec);//"move"vecintomembervector}private:std::vectorm_vec;};//usage:std::vectorv(100,1337);Foofoo(v);//v.emp

c++11 有时会包含 <cstdlib> 而 c++03 不会?

看看这个小程序。#includeintmain(){intvar=atoi("-99");//convertstringtointvar=abs(var);//takesabsolutevaluestd::cout编译产生以下错误信息:$g++-omainmain.cppmain.cpp:Infunction‘intmain()’:main.cpp:5:13:error:‘atoi’wasnotdeclaredinthisscopemain.cpp:6:16:error:‘abs’wasnotdeclaredinthisscopemain.cpp:9:10:error:‘EXIT_SU

c++ - C++03 中缺少 typeof 运算符?

我只是想知道boost如何实现BOOST_TYPEOF(在C++03中)这似乎是一个非常有用的工具。有人有什么想法吗?此外,我认为C++03本身可以提供typeof运算符,尤其是当它已经具有sizeof(expr)时,必须也知道expr的类型,否则它怎么能在不知道类型大小/em>?真的有可能知道大小,而不知道表达式的类型吗?如果它不知道类型,那么编译器会告诉我们什么(如果不是类型)的大小?我的意思是,sizeof(unknowntype)对编译器(以及人类)没有意义! 最佳答案 它只是使用了编译器魔法。比如,GCC的__typeof

c++ - C++03 中默认初始化和值初始化的区别?

我一直认为创建一个新对象总是会调用对象的默认构造函数,而构造函数是显式的还是编译器自动生成的都没有区别。根据thishighlyregardedanswer对于另一个问题,这在C++98和C++03之间以微妙的方式发生了变化,现在的工作方式如下:structB{~B();intm;};//non-POD,compilergenerateddefaultctornewB;//default-initializes(leavesB::muninitialized)newB();//value-initializesBwhichzero-initializesallfieldssinceit

c++ - 如何遍历 multimap 并打印按键分组的值?

这个问题在这里已经有了答案:isthereaniteratoracrossuniquekeysinastd::multimap?(6个答案)关闭5年前。我有std::multimapdataMap;键在哪里MyObject.name并且所有MyObjects都存储在std::vector中.填充map后我需要打印dataMap的内容按相同的键分组,在dataMap.count(MyObject.name)的帮助下,我首先需要一些相同的键然后是带有此键的所有值。我正在考虑使用两个forloops第一个循环遍历“key组名称”并计算属于该组的所有key,另一个循环forloop遍历特定组中

c++ - 如何定义支持 C++03 和 C++11 的 nullptr?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:“Backporting”nullptrtoC++-pre-C++0xprograms如何定义nullptr同时支持C++03和C++11?下面的代码是否同时使用C++03和C++11编译而没有改变nullptr在C++11编译器中的含义?#include#if!defined(nullptr)#definenullptrNULL#endif

C++11 和 C++03 对 std::string 的小字符串优化的支持不同?

在C++11标准的兼容性附录中,从C++03到C++11的变化之一描述如下:C.2.11Clause21:stringslibrary21.4.1Change:Loosenbasic_stringinvalidationrulesRationale:Allowsmall-stringoptimization.Effectonoriginalfeature:ValidC++2003codemayexecutedifferentlyinthisInternationalStandard.Someconstmemberfunctions,suchasdataandc_str,nolonger

c++ - 如何使用 XCB 将按键事件发送到应用程序?

如何使用XCB从另一个程序向窗口(当前事件窗口)发送按键或按键释放事件?我找到了一些使用XLib的教程,但是我想使用XCB。我想我必须调用xcb_send_event,但是我不知道将它作为参数传递什么。 最佳答案 您应该能够使用XTEST扩展来伪造对事件窗口的输入,使用xcb_test_fake_input()函数。#include...xcb_test_fake_input(c,XCB_KEY_PRESS,keycode,XCB_CURRENT_TIME,XCB_NONE,0,0,0);xcb_test_fake_input(c,