#if defined(_MSC_VER) && _MSC_VER == 1800 && _MSC_FULL_VER < 180030723
#  error "VS 2013 safely supports this only with Update 3 or greater"
#endif

// Dummy implementation. Test only the compiler feature.
namespace std {
typedef decltype(sizeof(int)) size_t;
template <class _E>
class initializer_list
{
  const _E* __begin_;
  size_t __size_;

#if defined(__INTEL_COMPILER) ||                                              \
  (defined(__LCC__) &&                                                        \
   (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)))
  // Compilers based on EDG, such as Intel compiler and MCST LCC,
  // internally assert the constructor overloads, so
  // reproduce the constructor used in its <initializer_list> header.
  initializer_list(const _E*, size_t) {}
#else
public:
  template <typename T1, typename T2>
  initializer_list(T1, T2)
  {
  }
#endif
};
}

template <typename T>
struct A
{
  A(std::initializer_list<T>) {}
};

void someFunc()
{
  A<int> as = { 1, 2, 3, 4 };
}
