草庐IT

new_time

全部标签

c++ - 对于 malloc() 失败是否有等效的 set_new_handler()?

在C++中,你can安排一个函数在new失败时调用。有没有办法在malloc失败时调用一个函数?假设正在从我不想更改的第三方库调用malloc。我认为没有可移植的答案,所以我很乐意接受特定于平台的答案。我在某些平台上使用Linux+uclibc,在其他平台上使用Linux+glibc。我打算使用setrlimit限制malloc可以返回的内存量。 最佳答案 malloc如果失败则返回NULL。您应该处理它,以及CRT内存函数的其他故障(realloc尤其容易出错)。在一般情况下,我认为您必须将内存的所有CRT使用包装在您自己设计的函

c++ - 是否可以创建指向函数的 `new` 运算符/构造函数的函数指针?

如果我想要参数化创建一个对象,我当然可以创建一个在特定类上调用new并传递指针的函数。我想知道是否可以跳过该步骤并将函数指针传递给new运算符本身。 最佳答案 boost::lambda提供functionwrappersfornewanddelete.这些可用于轻松地将new调用转换为函数对象。 关于c++-是否可以创建指向函数的`new`运算符/构造函数的函数指针?,我们在StackOverflow上找到一个类似的问题: https://stackover

c++ - 如何从 boost::posix_time::ptime 获取自纪元时间以来的毫秒数

我看过一些otheranswersonSO这表明我们可以通过从“其他”时间中减去纪元时间来获得以毫秒为单位的纪元时间,但是当我尝试时它不起作用:ptimeepoch=time_from_string("1970-01-0100:00:00.000");ptimeother=time_from_string("2011-08-0917:27:00.000");longdiff=(other-epoch).total_milliseconds();在这个阶段diff是-1349172576,它应该是一个正数,因为“其他”时间是2011年。有人知道是什么原因造成的吗?获取纪元以来的毫秒数的正

c++ - 尽管未定义 <new> header ,但 New 会抛出 bad_alloc?

new是怎么回事?程序中的表达式可以抛出bad_alloc尽管没有#include还是出错(因为这个错误isdefinedintheheader)?来自3.7.4。N3337的:Thelibraryprovidesdefaultdefinitionsfortheglobalallocationanddeallocationfunctions.Someglobalallocationanddeallocationfunctionsarereplaceable(18.6.1).AC++programshallprovideatmostonedefinitionofareplaceablea

c++ - 使用参数构造函数模拟 new[]

如果我没有修改参数构造函数中的任何static变量,则低于模拟newT[N](x,y);(数组新的参数)?templatevoid*operatornew[](size_tsize,constT&value){T*p=(T*)malloc(size);for(inti=size/sizeof(T)-1;i>=0;i--)memcpy(p+i,&value,sizeof(T));returnp;}用法将是,structA{A(){}//defaultA(inti,intj){}//witharguments};intmain(){A*p=new(A(1,2))A[10];//instea

c++ - 在 C++ 中调用 "new"时出现段错误?

我在尝试调用“new”来创建指针并将其插入vector时遇到了段错误。我将元素推送到vector中的代码是:queue->push_back(newBox(gen_id,Interval(x_mid,x_end),Interval(y_mid-y_halfwidth,y_mid+y_halfwidth)));基本上Box是一个类,构造函数只需要3个参数,generation_id和2个Intervals。我在这个“推”之前和之后打印出了vector中的内容,之前:[-0.30908203125,-0.3087158203125],[-0.951416015625,-0.95104980

c++ - (伪)-行列式为零的 N×N 矩阵的逆

我想在我的GraphSlam中使用nxn矩阵的逆矩阵。我遇到的问题:.inverse()Eigen库(3.1.2)不允许零值,返回NaNLAPACK(3.4.2)库不允许使用零行列式,但允许零值(使用来自ComputingtheinverseofamatrixusinglapackinC的示例代码)Seldon库(5.1.2)由于某种原因无法编译有没有人成功实现了允许负数、零值和零行列式的nxn矩阵求逆代码?有什么好的库(C++)推荐吗?我尝试为GraphSlam计算以下omega:http://www.acastano.com/others/udacity/cs_373_autono

c++ - 使用 Visual Studio 获取 time_t 的最大值

我需要独立于以下代码工作平台:timevaltv;tv.tv_sec=std::numeric_limits::max();此代码在各种LinuxOS和MacOSX下都能正常工作。不幸的是,在Windows下,对于tv.tv_sec这将返回-1。然后我想像这样重新定义time_t:typedefinttime_t;这也不起作用,因为编译器现在提示:errorC2371:'time_t':redefinition;differentbasictypes我怎样才能让这段代码独立于平台运行? 最佳答案 tv.tv_sec=std::num

C++ 模板 : How to put nontype constraints in compiling time

假设我有以下模板templateclassFOO{....}事实上,我要求(I>=F)。如果有人误用FOOa;我希望提出一个编译错误。如何做到这一点?谢谢 最佳答案 一种方法可能是C++11的static_assert,它类似于assert,但在编译时检查:templateclassFOO{static_assert(I>=F,"IneedstobelargerorequaltoF");...}; 关于C++模板:Howtoputnontypeconstraintsincompiling

c++ - new 的内存是否必须来自 operator new?

在考虑类似的事情时autox=newT;标准是否强制要求内存必须来自operatornew——类特定的还是全局的?也就是说,如果缺少特定于类的operatornew,则没有办法从除全局operatornew之外的任何地方获取内存? 最佳答案 我认为你的理解方式是错误的。表达式newT总是由两个步骤组成:搜索合适的operatornew。如果一个存在于类T中,则采用那个,否则采用全局的。全局的总是存在的,因为这是标准规定的(所以你永远不能“定义”它(因为它已经被定义),但你可以替换它)。你可以说::newT总是无条件地选择全局oper