title: Initializing base class members in derived class initializer list
body: <p>I have a class that I have to instantiate tons of times. It's something like this:</p>
  
  <pre><code>class A
  {
    public:
  
    A() : a1(0.0f), a2(-1) {}
  
    float a1;
    int   a2;
  };
  
  class B : public A
  {
    B();
    float b;
  };
  </code></pre>
  
  <p>I have in mind 2 ways to implement the ctor of B:</p>
  
  <pre><code>B(): A(), b(0.0f) {} // Using the base class ctor.
  
  B(): b(0.0f) { a1 = 0.0f; a2 = -1; } // Not using the base class ctor. Ugly but maybe faster?
  </code></pre>
  
  <p>Which of those is faster?</p>
  
  <p>My member types are basic (int, float, double...) in both base and inherited class.</p>
  
  <p>Compiler: Intel and LLVM.</p>