草庐IT

out_size

全部标签

c++ - size_t 和 __w64、time_t 和 __int64 是如何工作的?

我不是C或C++的老手。我不知道time_t是如何定义和设计的。几个帖子,例如:Whatisultimatelyatime_ttypedefto?Whatissize_tinC?Differencebetweensize_tandstd::size_t但是这些帖子只说明什么是time_t或size_t。它没有明确说明time_t或size_t是如何以及在何处定义和声明的。我正在使用WIN8VS2012ExpressC++。我搜索了库,发现size_t是在crtdefs.h中定义的,而不是cstddef。为什么需要size_t、time_t这样的类型?我们可以让sizeof只返回unsi

CMake 添加子目录错误 : "When specifying an out-of-tree source a binary directory must be explicitly specified"

我的目录结构如下:rootlibACMakeLists.txtClassA.cpplibBCMakeLists.txtClassB.cppsharedCodeenums.hAbstractClass.hCMake文件中如何包含sharedCode目录?这样classA(在libA中)和classB(在libB中)都可以使用enums.h和AbstractClass.h?在我尝试使用的CMakeLists.txt中:add_subdirectory(../sharedCode)但它给出了错误add_subdirectorynotgivenabinarydirectorybutthegiv

c++ - C4244 : '+=' : conversion from 'std::streamsize' to 'size_t' , 可能丢失数据

我已将我的VC++项目从VS2008迁移到VS2013并收到一些警告,例如:C4244:'+=':conversionfrom'std::streamsize'to'size_t',possiblelossofdata.如何解决这些类型的警告? 最佳答案 在MSVC2013中std::streamsize是:typedef_Longlongstreamsize;typedef_LONGLONG_Longlong;#define_LONGLONG__int64size_t是:typedefunsigned__int64size_t;因

c++ - 具有负值的 size_t 算术

我被要求复制一份std::string在作业中,我在执行substr时遇到问题功能。在老师给我们的一组测试中,有一个测试是length等于-1.矿山申报substr是:Cadenasubstr(size_tstart,size_tlength)const;我(认为)size_t会阻止传递负值。问题是在定义中我检查了size()(假设tam_与size()相同):if(tam_在我的系统中-1在unsigned是18446744073709551615,因此,例如假设开始是9和tam_是10.我希望:10这样抛出异常,但实际上我得到了10这是错误的,不会抛出异常。随着函数的继续,它分配了

c++ - boost::asio::streambuf 断言 "iterator out of bounds"

客户端向服务器发送大约165kB的数据。起初一切都很好。但是当客户端再次发送相同的数据(165kB)时,我在服务器端收到一个断言。断言包含有关“迭代器越界”的信息在调用堆栈上,有一些关于read_until方法的信息。所以我认为我犯了一个错误。TCP异步服务器代码如下:handle_read代码:voidSession::handle_read(constboost::system::error_code&a_error,size_ta_nbytestransferred){if(!a_error){std::ostringstreamdataToRetrive;dataToRetri

获取具有Out AttributeError的班级成员的价值

见我的例子classMyClass1:name='A'classMyClass2:foo=MyClass1()obj1=MyClass2()下面的代码将结果AttributeError如果obj1或者foo是False.printobj1.foo.name所以我写下ifobj1:ifobj1.foo:ifobj1.foo.name:printobj1.foo.name什么是最好的方法?我可以避免代码中的重复单词吗?看答案您可以使用try/except语法捕获例外。try:printobj1.foo.nameexceptAttributeError:#dosomething

c++ - vector.size() 的 GDB 错误值

一个简单的vector.push_back()导致我的代码出现一些错误:#includeusingnamespacestd;intmain(intargc,constchar*argv[]){vectorstack;stack.push_back(1);stack.push_back(1);//stack.size()becomes467369971afterthisstack.push_back(1);stack.push_back(1);...morepush_back()s...return0;}我正在使用GDB检查它的行为...奇怪的是stack.size()在第二个push_

c++ - OpenCV 错误 : Sizes of input arguments do not match (The operation is neither 'array op array' )

我正在做一个在树莓派上使用opencv的项目。我遇到了一个看起来很简单的障碍,但我无法解决问题。首先,这是我的代码的一部分:{gray=cvarrToMat(py);///cvShowImage("camcvWin",py);//displayonlygraychannelif(img_num%2==1){cv::imwrite("/home/pi/test/Gray_2Image1.jpg",gray);}elseif(img_num%2==0){cv::imwrite("/home/pi/test/Gray_2Image2.jpg",gray);cv::Matimg2=cv::im

c++ - "Moving out"对象的内部表示。好不好?

假设我有一个类,它的内部数据表示是一个std::string:classmy_type{std::stringm_value;...};如果我可以“移出”my_type的内部表示,会不会很好?这种能力将以如下方式完成:classmy_type{std::stringm_value;public:operatorstd::string()&&{//NOTE:^^refqualifierforr-valuereturnstd::move(m_value);//Explicitlydostd::moveisusedbecauseref-qualifiersdon'tapply//todata

c++ - Visual Studio 2010 C++ : malloc()/HeapAlloc always allocates new page for even smallest alloc size

我有一个相当大的C/C++项目,我一直在试图找出它消耗过多内存的原因(通过任务管理器中的“工作集”判断)。我终于找到了奇怪的行为,即使是最小的malloc()请求,它也会分配一个全新的4k页面。像这样的代码for(intbla=0;bla这应该会增加区区10KB的内存消耗,最终会增加4MB,因为它分配了1000个4kB。真正令人沮丧的部分是我无法将其作为独立文件重现。仅包含上述代码的小型应用程序就可以正常工作。只有大项目才会表现出错误的行为。直接回答一些明显的建议:我正在引入与大项目相同的库,并确保编译标志相同"new"的行为方式相同在Debug和Release模式下都会发生我真的追踪