this pointer and constructor
<p>Can i safely use this pointer outside class before its constructor finished (i don't mean virtual function call from constructor)?</p>

<p>I mean something like this:</p>

<pre><code>#include &lt;iostream&gt;

class Bar;

class Foo
{
public:
   Foo(Bar* bar);
};

class Bar
{
public:
   Bar() : instance(this) {}
   void foo()
   {
      std::cout &lt;&lt; "Bar::foo() \n";
   }

private:
   Foo instance;
};

Foo::Foo(Bar* bar)
{
   bar-&gt;foo(); // UB or not
}

int main()
{
   Bar instance;
}
</code></pre>

<p>I've got the following warning when i tried to compile this code in MSVC-11.0</p>

<blockquote>
  <p>warning C4355: 'this' : used in base member initializer list</p>
</blockquote>

<p>And what about such code?</p>

<pre><code>#include &lt;iostream&gt;

class Foo;

void bar(Foo* instance);

class Foo
{
public:
   Foo()
   {
      bar(this);
   }

   void foo()
   {
      std::cout &lt;&lt; "Foo::foo() \n";
   }
};

void bar(Foo* instance)
{
   instance-&gt;foo(); // UB or not
}

int main()
{
   Foo instance;
}
</code></pre>

<p>I can't find any quote from standard.</p>
