草庐IT

康波周期

全部标签

c++ - 临时工的生命周期

以下代码可以正常工作,但为什么这是正确的代码?为什么foo()返回的临时的“c_str()”指针有效?我想,当输入bar()时,这个临时文件已经被破坏了——但它似乎不是这样的。所以,现在我假设foo()返回的临时值将在调用bar()后被销毁-这是正确的吗?为什么?std::stringfoo(){std::stringout=something...;returnout;}voidbar(constchar*ccp){//dosomethingwiththestring..}bar(foo().c_str()); 最佳答案 当在词法

c++ - 为什么 const 引用不能延长通过函数传递的临时对象的生命周期?

下面这个简单的例子,为什么ref2不能绑定(bind)到min(x,y+1)的结果上?#includetemplateconstT&min(constT&a,constT&b){returnaliveexample-产生:main:xoreax,eaxret编辑:我认为下面的示例更好地描述了一种情况。#includetemplateconstexprTconst&min(Tconst&a,Tconst&b){returnaliveexample产生::14:38:error:''isnotaconstantexpressionconstexprintconst&ref2=min(x,y

C++:临时参数的生命周期?

当创建一个MyClass的新实例作为函数的参数时,如下所示:classMyClass{MyClass(inta);};myFunction(MyClass(42));标准是否对析构函数的时间做出任何保证?具体来说,我可以假设它会在调用myFunction()之后的下一条语句之前被调用吗? 最佳答案 临时对象在它们所属的完整表达式结束时被销毁。完整表达式是不是某个其他表达式的子表达式的表达式。通常这意味着它在;(或)结束,用于if、while、switch等)表示语句的结束。在您的示例中,这是函数调用的结束。请注意,您可以通过将临时对

java - 什么决定了 Dagger 2 中组件(对象图)的生命周期?

我正在尝试深入了解Dagger2中的作用域,特别是作用域图的生命周期。如何创建一个离开作用域时将被清理的组件。对于Android应用程序,使用Dagger1.x,您通常在应用程序级别有一个根范围,您可以扩展它以在Activity级别创建一个子范围。publicclassMyActivity{privateObjectGraphmGraph;publicvoidonCreate(){mGraph=((MyApp)getApplicationContext()).getObjectGraph().plus(newActivityModule()).inject(this);}publicv

c++ - C++ lambda 表达式的生命周期是多少?

(我已经阅读了Whatisthelifetimeoflambda-derivedimplicitfunctorsinC++?,它没有回答这个问题。)我了解C++lambda语法只是用于创建具有调用运算符和某些状态的匿名类的实例的糖,并且我了解该状态的生命周期要求(取决于您是否通过引用的值捕获。)但是lambda对象本身的生命周期是多少?在以下示例中,返回的std::function实例是否有用?std::functionmeta_add(intx){autoadd=[x](inty){returnx+y;};returnadd;}如果是,它是如何工作的?这对我来说似乎有点太神奇了——我

c++ - Visual Studio 中的安全开发生命周期检查选项是什么?

我使用的是VisualStudio2013Preview,尽管我确信我在早期版本中看到过它。使用向导创建新项目时,我选择C++、Win32控制台应用程序,并且有一个选项可以在我的项目上启用安全开发生命周期检查。有人能准确解释一下这个选项对我的代码/项目有什么作用吗? 最佳答案 /sdl开关描述为here.它将一些警告变成错误,这不会影响您的代码。此外,它更积极地应用/GS检查。不要期望太高。MicrosoftSDL确实是1980年代风格C编程的解决方法。即使您使用20世纪的C++,也不需要它。例如。operator+(std::st

c++ - 在 C++ 中保证临时的生命周期?

C++是否为在函数调用中创建但不用作参数的临时变量的生命周期提供保证?这是一个示例类:classStringBuffer{public:StringBuffer(std::string&str):m_str(str){m_buffer.push_back(0);}~StringBuffer(){m_str=&m_buffer[0];}char*Size(intmaxlength){m_buffer.resize(maxlength+1,0);return&m_buffer[0];}private:std::string&m_str;std::vectorm_buffer;};以下是你将

ios - 深入了解保留周期

假设我们有三个对象:祖parent、parent和child。祖parent留住parent,parent留住child,child留住parent。祖parent释放parent。在这种情况下会发生什么? 最佳答案 除非有其他对parent或child的引用,否则他们都会成为孤儿。但是父子之间的保留循环阻止了它们被释放并且它们成为浪费的内存。child永远不应该保留parent。如果有的话,请在子级中使用弱引用来维护对父级的引用。 关于ios-深入了解保留周期,我们在StackOver

android - iOS中的 Activity 生命周期相当于什么?

实际上,我会说iOSViewControllers和AndroidActivities都有它们的生命周期方法。例如ViewController.viewDidLoad()的等价物是Activity.onCreate()?否则我仍然需要知道其他的等价物:OnStart()OnRestart()OnResume()OnStop()OnDestroy()OnPause() 最佳答案 这是Android与iOS生命周期的比较:注意:viewDidUnload在iOS6之后被弃用 关于androi

php - 为 PHP 项目设置部署/构建/CI 周期

我大部分时间都是一个孤独的开发人员,从事许多大型项目,主要是基于PHP的项目。我想特化和自动化处理代码库更改的方式,并创建一个持续集成流程,使过渡到团队工作成为可能,而无需进行根本性更改。我现在正在做的是,我为每个项目都有一个本地测试环境;我对每个项目都使用SVN;更改在本地进行测试,然后通常通过FTP传输到在线版本。API文档是从源代码手动生成的;单元测试是我慢慢接触的东西,它还不是我日常生活的一部分。我设想的“构建周期”将执行以下操作:一个变更集在本地测试后被checkin到SVN。我开始构建过程。SVNHEAD修订被checkout,如有必要进行修改,并准备好上传。API文档会自