草庐IT

number_placement

全部标签

c++ - 是否可以使用 placement-new 来改变多态对象的类型?

是否可以使用placement-new来改变多态对象的类型?如果不是,标准中究竟禁止了什么?考虑这段代码:#includestructAnimal{Animal();virtual~Animal();virtualvoidbreathe();voidkill();void*data;};structDead:Animal{voidbreathe()override;};voidAnimal::kill(){this->~Animal();new(this)Dead;}调用“kill”合法吗?更新:根据此处显示的通过显式调用析构函数更改对象类型并为兼容的新对象应用placement-ne

c++ - GCC 无法向量化这个简单的循环 ('number of iterations cannot be computed' ) 却在同一代码中管理了一个类似的循环?

所以,我有这个循环的C++代码:for(i=0;i所有涉及的数量都是int的。从GCC的矢量化报告中我得到:babar.cpp:233:note:=====analyze_loop_nest=====babar.cpp:233:note:===vect_analyze_loop_form===babar.cpp:233:note:===get_loop_niters===babar.cpp:233:note:notvectorized:numberofiterationscannotbecomputed.babar.cpp:233:note:badloopform.我想知道为什么“无法

c++ - placement new 基于模板 sizeof()

这在C++11中合法吗?使用最新的英特尔编译器编译并且似乎可以工作,但我只是觉得它是侥幸。classcbase{virtualvoidcall();};templateclassfunctor:publiccbase{public:functor(T*obj,void(T::*pfunc)()):_obj(obj),_pfunc(pfunc){}virtualvoidcall(){(_obj)(*_pfunc)();}private:T&_obj;void(T::*_pfunc)();//edited:thisisnogood://conststaticintsize=sizeof(_

c++ - 如果传递的指针为空,placement new 是否会调用构造函数?

我试图将一个vc7.1项目转换为我从codeproject获得的vs2010。(这是链接http://www.codeproject.com/KB/cpp/transactions.aspx?fid=11253&df=90&mpp=50&noise=3&sort=位置&view=展开&fr=1#xx0xx但是在转换和修改它的配置之后。我发现它调试不成功,它说在DrawIt.exe中的0x0028e7b9处出现未处理的异常:0xC0000005:访问冲突写入位置0x00000000。错误行是这样的data=new(Mm::Allocate(sizeof(DocData),sid))Doc

c++ - 内存泄漏 : unable to break on a memory allocation number

我正在尝试找出内存泄漏问题。我的项目是一个基于ATL的对话框项目,它使用DirectShow和标准库。我的程序中总共有45个内存泄漏,每个都是24个字节。我在我的stdafx.h中#define'd_CRTDBG_MAP_ALLOC等,以及DEBUG_NEW以获取每个内存泄漏的文件和行号。但是,没有打印文件行号。内存块都是“普通”block,看起来像这样:{180}normalblockat0x003E6008,24byteslong.Data:_>>W>A0AE3E00B05F3E00A0AE3E0057000000我尝试将以下行添加到_tWinMain()的开头_CrtSetBre

c++ - boost 日志 : Support file name and line number

我试图让我的团队远离log4cxx并尝试使用Boost.Logv2。我们目前的log4cxxpattern很简单:log4cxx::helpers::Propertiesprop;prop.setProperty("log4j.rootLogger","DEBUG,A1");prop.setProperty("log4j.appender.A1","org.apache.log4j.ConsoleAppender");prop.setProperty("log4j.appender.A1.layout","org.apache.log4j.PatternLayout");prop.se

ios - Array objectAtIndex 上的 RangeException <huge number> #Core Data

编程新手**尝试访问可变数组中的对象时出现“越界”NSRangeException。错误显示objectAtIndex的数字很长,但该数组目前只有三个对象。这是错误消息:由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*-[__NSArrayMobjectAtIndex:]:index2147483647beyondbounds[0..2]”我正在使用核心数据。当我选择通过CoreData填充的表格View的第一行时,应用程序崩溃了。可变数组称为“allDates”。似乎导致它的代码在此处的prepareForSegue方法中:DateTableViewCo

ios - 重新加载部分 :withRowAnimation: doesn't update number of rows

我在小部件中有一个UITableView,我希望用动画重新加载它。[self.tableViewreloadData]效果很好,但重新加载不是动画。我知道我应该使用reloadSections:withRowAnimation:来制作动画,但是有一个问题。表格确实在更新,numberOfRowsInSection:返回新值,但视觉上看到的行数仍然相同。例如:如果我有一个有2行的UITableView,我想将它更新为4行,那么表格中仍然会有2行。这2个单元格中的内容将按预期更新,但应该有4个单元格。我知道numberOfRowsInSection:返回4。当调用[self.tableVi

ios - 如何实时获取collectionView当前的section number

-(void)scrollViewDidScroll:(UIScrollView*)scrollView{NSIndexPath*path=[self.collectionViewindexPathForItemAtPoint:CGPointMake(self.collectionView.contentOffset.x,self.collectionView.contentOffset.y)];NSLog(@"sectionNumber===%ld",path.section);//菜单button滚动到相应的位置[self.menuButtonViewscrollToButtonW

c# - Monotouch Automated Incremental Build Number 带版本号

关于使用C#开发MonotouchIOS:我正在尝试在我的MonotouchIOS项目中实现一个自动递增的构建版本号。[Major].[Minor].[Build]之类的东西在每次构建时自动递增[Build]部分就可以了。我在下面找到了这篇文章,但它似乎使用的是ObjectiveC,我无法弄清楚如何使用MonotouchC#使其正常工作。http://monotouch.2284126.n4.nabble.com/How-to-increment-the-iPhone-Application-Version-number-on-every-build-td4425363.html在Mo