This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: has_trivial_destructor improvable?


On 22 February 2012 15:55, Hite, Christopher wrote:
>
> Hi, does has_trivial_destructor<> and co depend on compiler magic?

Yes.

> Is it possible to detect empty deconstructors/constructors. ?The reason I ask is because I'd like to make better placeholders for a boost::optional implementation using new unions from N2544.
>
> template<typename T>
> union placeholder{
> ? ? ? ?T v;
> ? ? ? ?placeholder() {} ? // breaks has_trivial_constructor
> ? ? ? ?~placeholder (){} // breaks has_trivial_destructor
> };
>
> Is improving these possible or is there some conceptual problem with a circular reference?

I don't understand the question, sorry.

What do you mean "breaks has_trivial_constructor" ?

Do you just mean has_trivial_default_constructor::value is false?

If you declare the constructor and destructor as defaulted then they
will be trivial for placeholder<X> if they are trivial for X:

       placeholder() = default;
       ~placeholder () = default;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]