草庐IT

this-reference

全部标签

c++ - 存储右值引用 : should this work?

我正在通过故意破坏事物来测试我对左值和右值引用的理解。所以说有这个结构:structFooBar{FooBar(int&&number):rNumber(number){}int&rNumber;};然后我创建了一个实例FooBarobj(5)。每次尝试读取引用变量都会返回正确的结果(5)。如果我使用constint&而不是int&&,也会发生同样的情况。我注意到将int替换为std::string并读取引用会返回一个空字符串,因此我怀疑它给出了未定义的行为。是这样吗?如果是这样,为什么它适用于整数?更新:我正在创建实例并像这样读取它:FooBarobj(5);//FooBarobj(

c++ - 为什么这在 C++ 中抛出 "CryptoMaterial: this object contains invalid values",但在 python 中工作正常

我正在与Mega.co.nz的API交互,使用python库作为引用,并且此代码正在抛出。私钥属于临时账户。当我只使用第一个素数时它可以工作,但如果我包含第二个素数它会抛出,但在python代码中一切正常。此代码抛出“CryptoMaterial:此对象包含无效值”//g++test.cpp-otest-lcryptopp#include#include#include#includeusingnamespaceCryptoPP;constIntegerc("1085716632638270376006277952876684336882093057659821322727847155

c++ - 获取函数的地址并在编译时丢弃它 : is this valid C++?

我一直在寻找一种方法来将模板类型参数限制为那些实现给定签名功能的参数。我似乎已经找到了一个非常优雅的解决方案,它允许self记录代码和相当干净的、类似于概念的错误消息。唯一的问题是我不确定那是有效的C++还是恰好在clang和gcc中工作的东西。代码如下:#includeusingstd::enable_if;//let'ssaywewantsomethingwitha"regular"operator+classThing{public:Thingoperator+(constThing&){returnThing();}//thekindofoperatorwewant};clas

c++ - 对 vkCreateInstance 的 undefined reference

最终编辑:这是TDM_GCC的编译器/链接器错误。查看答案。编辑:据我所知,这不是重复的。这个问题似乎是一个简单的菜鸟错误,但事实并非如此。我已经使用TDM-GCC-64(Windows的GCC/MinGW工具包)链接到正确的Vulkan库“vulkan-1.lib”,并使用了VulkanSDK示例中的示例代码。本页HowdoIuseVulkanwithMinGW?(R_X86_64_32error)还确认它可以在MinGW上运行,这应该与TDM-GCC-64没有什么不同,因为它使用了MinGW的一部分。如果这是一个简单答案的重复,那么我很抱歉提出这个问题,但到目前为止还没有人解决这个

c++ - 如何实现 remove_reference

我正在学习类型特征和类型转换(修改?),所以我遇到了std::remove_reference.我试着这样实现它:templatestructremove_reference{typedefTtype;};templatestructremove_reference{typedefconstTtype;};templatestructremove_reference{typedefTtype;};templatestructremove_reference{typedefconstTtype;};现在当我使用它时:remove_reference::typex1;//x1isint:O

c++ - 对 `cv::Stitcher::createDefault(bool)' 的 undefined reference

我尝试在c++中使用opencv拼接图像,当程序编译时,它抛出错误Stitcherstitcher=Stitcher::createDefault();undefinedreferenceto`cv::Stitcher::createDefault(bool)'为了Stitcher::Statusstatus=stitcher.stitch(vImg,rImg);undefinedreferenceto`cv::Stitcher::stitch(cv::_InputArrayconst&,cv::_OutputArrayconst&)'请帮我解决这个错误。在此先感谢您。

c++ - `std::this_thread::sleep_for()` 是否有任何特定于平台的限制?

在使用std::this_thread::sleep_for()毫秒及以上时,是否需要考虑任何已知的可移植性问题?在我正在进行的项目中,我希望使用Microsoft的Sleep()到naonsleep()到usleep,具体取决于特定平台上可用的内容。其中一些具有明显的限制,例如在某些平台上不支持1000毫秒或更多的延迟。std::this_thread::sleep_for()是否也有这样的怪癖? 最佳答案 Maximumsleepduration:std::this_thread::sleep_for()这里没有问题。你想睡多久

c++ - 海湾合作委员会 : C++11 inline object initialization (using "this") does not work when there is a virtual inheritance in hierarchy

当在初始化中使用此指针并且在层次结构中存在虚拟继承时,C++11内联对象初始化不起作用(在GCC中)。这可能是GCC的错误吗(因为它在CLang中工作)?还是C++11标准本身的差距?示例(可以在here中尝试),当使用GCC编译以下代码时:FieldIndexm_inB{"inB",this};不会被执行。但它会在使用CLang编译时执行。变通方法:从FieldIndexContainer派生A作为虚拟#include#include#includeusingnamespacestd;classFieldIndexContainer{public:classFieldIndex{pu

C++和const reference to temporary binding问题(在C++0X中实现D语言传值传引用规则)

我想知道可以在多大程度上模仿C++中按值传递和按引用传递规则的D语言规则。有关背景,请参阅以下两个引用资料(主要是Alexandrescu):http://bartoszmilewski.wordpress.com/category/d-programming-language/page/2/和http://groups.google.com/group/comp.std.c++/msg/303e3bf2407a7609?其中一个关键区别是,在D中,const引用不绑定(bind)(作为非const引用)到临时对象。但是,我不知道有什么方法可以定义泛型类X,从而导致以下代码无法编译:v

c++ - 当我什至无法进入代码时如何调试 "This application has requested the Runtime to terminate it in an unusual way."?

我有一个C++程序,它在进程启动后立即给出此错误-显然是在任何用户代码执行之前。它仅在启用内联时发生。即使内置了调试符号,我也无法进入代码。当我在VisualStudio中按下F10时,我收到了错误并且程序停止了。我在“调试/异常”中检查了所有异常/检查,但仍然没有休息。通常我会认为这样的事情是由于缺少运行时依赖项造成的,但我很肯定这不是这里的情况(已通过DependencyWalker验证)。编辑:我使用了SteveTownsend对CDB的推荐,现在我能够单步执行程序的预用户代码部分。最终的堆栈跟踪是:Child-SPRetAddrCallSite00000000`0008e308