草庐IT

pointer-events

全部标签

c++ - 如何从 std::array<T, N>::pointer 成员/依赖类型中推断出数组大小?

我的目标是为strcpy编写安全的替代品对于在编译期间已知目标缓冲区大小的情况,我希望推断出缓冲区大小,因此用户不需要知道它。例如:charxs[2]={0};strcpy(xs,"abc");//bufferoverflow!printf("[%s]\n",xs);此输出(希望)是:[abc]对于简单的情况,当传递C风格的数组时,可以毫不费力地写成:templatechar*safe_strcpy(char(&dst)[N],constchar*src)noexcept{std::snprintf(dst,N,"%s",src);return&dst[0];}推导出数组的大小,snp

c++ - Qt : send Key_Return and Key_Delete events

我正在使用QtEmbedded开发虚拟键盘,但遇到了一个小问题。事实上,我使用SignalMappers将键映射到键盘事件,以便在QTextEdit小部件中显示文本。一切正常,除了两个事件:Key_Return和Key_Delete;我不知道我做错了什么,也许你会有想法。这是一个经典的代码,发送字符:voidVirtualKeyboard::SendChar(intindex){QCharcharToSend(letters_.at(index)->text().at(0));//Getcharserver_->sendKeyEvent(charToSend.unicode(),QEv

c++ - 使用 Boost.Log 构建 Boost "error: target { simple_event_log.mc. } has no type"

我正在尝试构建Boost.Log(http://boost-log.sourceforge.net/libs/log/doc/html/index.html)。我将它添加到我的boost源并执行了我常用的boost构建命令。b2--build-dir="D:\boost\1.51.0\boost"toolset=gccvariant=releaselink=staticthreading=multiruntime-link=static--build-type=complete但什么也没发生,最后我收到了这个:D:/boost/1.51.0/src/tools/build/v2/bui

java - 最有值(value)球员 : : Event Bus pattern instead of Listener

这个问题更倾向于范式。为什么我们不在MVP环境中使用事件总线而不是监听器?通常,“P”部分具有View和模型引用的依赖注入(inject)。当然,这有一个优势,即通过Presenter显示View和模型之间的明确契约,这更具可读性。但是,让演示者从View中监听事件并且事件携带View有效负载(例如:json表示)不是一种更简洁的方法。演示者回话View也是如此。View将监听来自演示者的事件。主要优点是,我们不必为View和演示者之间的每个契约编写接口(interface)。如果您查看code你会看到演示者正在接触文本字段等View细节,我相信这会增加View和演示者之间的耦合。比如

c++ - 基本问题 : Pointers to objects in unordered_maps (C++)

我是C++编程的新手,非常感谢没有假定太多先验知识的回复。感谢这里的建议,我创建了一个无序map:typedefstd::tr1::unordered_maphmap;此映射中的数据是指向Strain类实例的指针。一旦创建了这些实例,我就创建了指向它们的指针,然后将这些指针添加到我的哈希表(hmapstrainTable)和另一个vector(vectorliveStrains),例如,stringMRCA;for(intb=0;bStrain类的实例永远不会被删除,指向它们的指针也不会从strainTable中删除。指针偶尔会在vectorliveStrains和vectordead

解决Windows找不到api-ms-win-eventing-provider-l1-1-0.dll问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个api-ms-win-eventing-provider-l1-1-0.dll文件进行安装(前提是找到适合的版本),当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此安装好之后就能重新打开你的软件或游戏了.那么出现api-ms-win-eventing-provider-l1-1-0.dll丢失要怎么解决?一、手动从本站下载dll文件1、从下面列表下载api-ms-win-eventing-

C++ : friends of class and "this" pointer

我有一个小问题要问你:),我知道每个方法都“secret地”获取它们所在的某个类的“this”指针,但为什么“友元”函数不会发生这种情况?是因为它们不是类的方法吗?谁能解释一下整个机器,我对“这个”到底是如何工作的很感兴趣!提前致谢!:) 最佳答案 friend函数和类仅用于编译器检查的访问控制。friend函数只是标准函数,因此调用约定不会有任何差异。friend函数不是任何类的成员,因此没有传递this指针(与static成员函数一样)类的非static成员函数将得到一个隐藏this指针(根据ABI这通常是第一个参数),stat

c++ - static_pointer_cast<Derived> pReallyABase = static_pointer_cast<Derived>(pBase) 有效!为什么?

这个问题在这里已经有了答案:Downcastingusingthe'static_cast'inC++(3个答案)关闭8年前。我不明白为什么会这样。pReallyABase是一个向下转换的shared_pointer,它指向一个基类实例。我理解为什么编译器让我调用pReallyABase->onlyForDerived()因为我将它定义为派生类指针,但是当我尝试使用该指针调用派生类函数时为什么没有出现运行时错误?classBase{public:virtualstringwhatAmI(){return"IamaBase";}};classDerived:publicBase{publ

c++ - 您可以向 union 成员发送 "pointer to member"吗?

我能找到的所有描述都在类的上下文中谈论“指向成员的指针”。union与结构非常相似,尤其是也有成员。您能否也提供指向这些成员的指针?例如unionx{inta;floatb;};intx::*p=&x::a;我不是在谈论作为一个整体的union体的指针,作为union体成员的指针等。上面示例中的p实际上是一个偏移量,显然大小为0。我需要这个构造来回答thisquestion. 最佳答案 §3.9.2/1:复合类型可以通过以下方式构造:......指向非静态50类成员的指针,它们标识给定类的对象中给定类型的成员,§8.3.3/1:在声

c++ - pointer_traits 为既不是 X<A, T...> 也没有提供成员 typedef element_type 的类型提供什么?

下面的结果是什么?它是格式错误、未定义的行为还是定义良好且格式正确的行为?structA{};std::pointer_traitsx;我之所以问,是因为好奇想知道,也想知道任意类型是不是指针。我还想包括shared_ptr和friend。我想知道是否有类型特征(谓词),如果没有,我是否可以使用pointer_traits并检测是否声明了element_type。 最佳答案 它表示从20.6.3p1开始格式错误,因为它没有element_type并且不是类模板实例化typedefseebelowelement_type;Type:P