According to C++11 § 8.5.4 [dcl.init.list] paragraph 4:
4 Within the initializer-list of a braced-init-list, the initializer-clauses, including any that result from pack expansions (14.5.3), are evaluated in the order in which they appear. That is, every value computation and side effect associated with a given initializer-clause is sequenced before every value computation and side effect associated with any initializer-clause that follows it in the comma-separated list of the initializer-list.
As far as I know GCC 4.8.1 has a bug relative to evaluation of initializers. I described it here
http://cpp.forum24.ru/?1-3-0-00000063-000-0-0-1378892425
Though the text is written in Russion but it can be simply translated in English by using for example google translate.