Question: Is order of execution in constructor initialization list determinable? I know that members order in a class is the order in which those members will be initialized but if I have scenario like this:

```
class X()
{
X_Implementation* impl_;
};  

and then providing that allocator is available:

X::X():impl_(Allocate(sizeof(X_Implementation)))//HERE I'M ALLOCATING <--1
,impl_(Construct<X_Implementation>(impl_))//AND HERE I'M CONSTRUCTING <--2
{
}

```

but in order for this to be dependable this order MUST be from left to right. Is it guarantied by GREAT BOOK OF std:: or not? If not I can always move the second line into the body.

Answer: 
According to ISO/IEC 14882:2003(E) section 12.6.2:

> 
> Initialization shall proceed in the following order:
> 
> 
> * First, and only for the constructor of the most derived class as described below, virtual base classes shall
> be initialized in the order they appear on a depth-first left-to-right traversal of the directed acyclic graph
> of base classes, where “left-to-right” is the order of appearance of the base class names in the derived
> class base-specifier-list.
> * Then, direct base classes shall be initialized in declaration order as they appear in the base-specifier-list
> (regardless of the order of the mem-initializers).
> * Then, nonstatic data members shall be initialized in the order they were declared in the class definition
> (again regardless of the order of the mem-initializers).
> * Finally, the body of the constructor is executed.
> 
> 
> 

So, follow that order, and you'll have your order. Also according to the standard, the order is prescribed as such so that objects can be uninitialized in the precisely reverse order.
Your specific scenario is based on the idea of initializing the same member more than once. This is plain illegal in C++. Your code will not compile. So, the question you are asking doesn't really exist.

The order of member initialization is the order of their declaration in class definition. In no-inheritance contexts that covers everything related to the order of initialization in the constructions initializer list.