草庐IT

non-trivial

全部标签

c++ - *non*-const 引用会延长临时人员的生命周期吗?

曾几何时,我认为这样的代码会失败:constMyClass&obj=MyClass();obj.DoSomething();因为MyClass对象将在其完整表达式结束时被销毁,留下obj作为悬空引用。但是,我(在这里)了解到这不是真的。该标准实际上有一个特殊规定,允许const引用使临时对象保持事件状态,直到所述引用本身被销毁。但是,需要强调的是,只有const引用具有这种能力。今天我在VS2012中运行了下面的代码作为实验。structFoo{Foo(){std::cout调用f()时的输出是:ctorHelloworlddtor所以我查看了C++11草案标准,但只发现了这个(第12

c++ - *non*-const 引用会延长临时人员的生命周期吗?

曾几何时,我认为这样的代码会失败:constMyClass&obj=MyClass();obj.DoSomething();因为MyClass对象将在其完整表达式结束时被销毁,留下obj作为悬空引用。但是,我(在这里)了解到这不是真的。该标准实际上有一个特殊规定,允许const引用使临时对象保持事件状态,直到所述引用本身被销毁。但是,需要强调的是,只有const引用具有这种能力。今天我在VS2012中运行了下面的代码作为实验。structFoo{Foo(){std::cout调用f()时的输出是:ctorHelloworlddtor所以我查看了C++11草案标准,但只发现了这个(第12

c++ - ‘is_trivially_copyable’ 不是 ‘std’ 的成员

我的gcc版本是4.8.320140624。我可以使用is_pod、is_trivial、is_standard_layout,但尝试is_trivially_copyable时失败、is_constructible和is_default_constructible,也许更多。错误信息是'xxx'isnotamemberof'std'。这里有什么问题?他们甚至被当前的GCC支持吗?谢谢! 最佳答案 正如其他人提到的,GCC版本std::is_trivially_copyable。这里有一个破解这个限制的方法://workaround

c++ - ‘is_trivially_copyable’ 不是 ‘std’ 的成员

我的gcc版本是4.8.320140624。我可以使用is_pod、is_trivial、is_standard_layout,但尝试is_trivially_copyable时失败、is_constructible和is_default_constructible,也许更多。错误信息是'xxx'isnotamemberof'std'。这里有什么问题?他们甚至被当前的GCC支持吗?谢谢! 最佳答案 正如其他人提到的,GCC版本std::is_trivially_copyable。这里有一个破解这个限制的方法://workaround

c++ - 为什么 const/non-const 函数重载的继承不明确?

我试图创建两个类,第一个类是函数的非const实现,第二个类是const实现。这是一个小例子:classBase{protected:intsome;};classA:publicvirtualBase{constint&get()const{returnsome;}};classB:publicvirtualBase{int&get(){returnsome;}};classC:publicA,B{};Ctest;test.get();//ambiguous对get函数的调用不明确。不管const版本需要匹配更多的需求。(在constC上调用get也是模棱两可的,但有一个可能的函数可

c++ - 为什么 const/non-const 函数重载的继承不明确?

我试图创建两个类,第一个类是函数的非const实现,第二个类是const实现。这是一个小例子:classBase{protected:intsome;};classA:publicvirtualBase{constint&get()const{returnsome;}};classB:publicvirtualBase{int&get(){returnsome;}};classC:publicA,B{};Ctest;test.get();//ambiguous对get函数的调用不明确。不管const版本需要匹配更多的需求。(在constC上调用get也是模棱两可的,但有一个可能的函数可

c++ - c++中的 union 它们是否可行

C++中的union可以有成员函数吗?如果创建了对象,与数据成员和成员函数的union如何存在?如果我认为是,那么它们在任何地方都可行。如果是,那么在哪里? 最佳答案 9.5/1Aunioncanhavememberfunctions(includingconstructorsanddestructors),butnotvirtual(10.3)functions.Aunionshallnothavebaseclasses.Aunionshallnotbeusedasabaseclass.Anobjectofaclasswithan

c++ - c++中的 union 它们是否可行

C++中的union可以有成员函数吗?如果创建了对象,与数据成员和成员函数的union如何存在?如果我认为是,那么它们在任何地方都可行。如果是,那么在哪里? 最佳答案 9.5/1Aunioncanhavememberfunctions(includingconstructorsanddestructors),butnotvirtual(10.3)functions.Aunionshallnothavebaseclasses.Aunionshallnotbeusedasabaseclass.Anobjectofaclasswithan

c++ - is_trivially_copyable 和 is_trivially_copy_constructible 有什么区别?

这些何时会给出不同的答案,这种差异何时有用(如果有的话)? 最佳答案 前者测试triviallycopyable属性,简而言之,这意味着该类型是memcpy-安全的。Atriviallycopyableclassisaclassthat:—hasnonon-trivialcopyconstructors(12.8),—hasnonon-trivialmoveconstructors(12.8),—hasnonon-trivialcopyassignmentoperators(13.5.3,12.8),—hasnonon-trivia

c++ - is_trivially_copyable 和 is_trivially_copy_constructible 有什么区别?

这些何时会给出不同的答案,这种差异何时有用(如果有的话)? 最佳答案 前者测试triviallycopyable属性,简而言之,这意味着该类型是memcpy-安全的。Atriviallycopyableclassisaclassthat:—hasnonon-trivialcopyconstructors(12.8),—hasnonon-trivialmoveconstructors(12.8),—hasnonon-trivialcopyassignmentoperators(13.5.3,12.8),—hasnonon-trivia