title: Is it safe to initialize a member using a member initialized earlier in initializer list?
body: <p>Is the following code safe or does it lead to undefined behavior in C++03? </p>
  
  <pre><code>class Aries {
  public:
      Aries() : Taurus("foo") , Leo(Taurus + "bar") {}
  
  private:
      string Taurus;
      const string Leo;
  };
  </code></pre>
  
  <p>This code is obviously a stripped down version of my actual problem. </p>
  
  <p><strong>Edit</strong> <code>Taurus</code> has been intentionally declared before <code>Leo</code> in the class declaration. I am aware the initialization happens in the order of initialization in class declaration (not the order in the initializer list.)</p>