title: Is it safe to call placement new on `this` for trivial object?
body: <p>I know that this question was asked several times already but I couldn't find an answer for this particular case.</p>
  
  <p>Let's say I have a trivial class that doesn't own any resources and has empty destructor and default constructor. It has a handful of member variables with in-class initialization; not one of them is <code>const</code>.</p>
  
  <p>I want to re-initialize and object of such class it without writing <code>deInit</code> method by hand. Is it safe to do it like this?</p>
  
  <pre class="lang-cpp prettyprint-override"><code>void A::deInit()
  {
    new (this)A{};
  }
  </code></pre>
  
  <p>I can't see any problem with it - object is always in valid state, <code>this</code> still points to the same address; but it's C++ so I want to be sure.</p>