// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// Copyright (C) 2013 Christian Seiler <christian@iwakd.de>
// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef EIGEN_CXX11_CORE_MODULE
#define EIGEN_CXX11_CORE_MODULE

#include <Eigen/Core>

#include <Eigen/src/Core/util/DisableStupidWarnings.h>

/** \defgroup CXX11_Core_Module C++11 Core Module
  *
  * This module provides common core features for all modules that
  * explicitly depend on C++11. Currently, this is only the Tensor
  * module. Note that at this stage, you should not need to include
  * this module directly.
  *
  * It also provides a limited fallback for compilers that don't support
  * CXX11 yet, such as nvcc.
  *
  * \code
  * #include <Eigen/CXX11/Core>
  * \endcode
  */

// Only a subset of cxx11 is allowed at Google, so we default to emulate the
// cxx11 functionality that we need.
#include "src/Core/util/FixedSizeVector.h"
#if 1
#include <vector>
using ::std::vector;
#include "src/Core/util/EmulateCXX11Meta.h"
#else
#include "src/Core/util/CXX11Workarounds.h"
#include "src/Core/util/CXX11Meta.h"
#endif
#include <Eigen/src/Core/util/ReenableStupidWarnings.h>

#endif // EIGEN_CXX11_CORE_MODULE
