Enforces intel icpc >= 2017, fixes #1121 (#1363)
diff --git a/README.md b/README.md
index 04568ac..dbebf0a 100644
--- a/README.md
+++ b/README.md
@@ -98,7 +98,7 @@
1. Clang/LLVM 3.3 or newer (for Apple Xcode's clang, this is 5.0.0 or newer)
2. GCC 4.8 or newer
3. Microsoft Visual Studio 2015 Update 3 or newer
-4. Intel C++ compiler 16 or newer (15 with a [workaround](https://github.com/pybind/pybind11/issues/276))
+4. Intel C++ compiler 17 or newer (16 with pybind11 v2.0 and 15 with pybind11 v2.0 and a [workaround](https://github.com/pybind/pybind11/issues/276))
5. Cygwin/GCC (tested on 2.5.1)
## About
diff --git a/docs/changelog.rst b/docs/changelog.rst
index 2397056..2d9b452 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -21,6 +21,10 @@
* The ``value()`` method of ``py::enum_`` now accepts an optional docstring
that will be shown in the documentation of the associated enumeration.
+* Intel compilers have needed to be >= 17.0 since v2.1. Now the check
+ is explicit and a compile-time error is raised if the compiler does
+ not meet the requirements.
+
v2.2.2 (February 7, 2018)
-----------------------------------------------------
diff --git a/docs/intro.rst b/docs/intro.rst
index 3e9420e..118cb50 100644
--- a/docs/intro.rst
+++ b/docs/intro.rst
@@ -91,4 +91,4 @@
1. Clang/LLVM (any non-ancient version with C++11 support)
2. GCC 4.8 or newer
3. Microsoft Visual Studio 2015 or newer
-4. Intel C++ compiler v15 or newer
+4. Intel C++ compiler v17 or newer (v16 with pybind11 v2.0 and v15 with pybind11 v2.0 and a `workaround <https://github.com/pybind/pybind11/issues/276>`_ )
diff --git a/include/pybind11/detail/common.h b/include/pybind11/detail/common.h
index a291ecf..3c67228 100644
--- a/include/pybind11/detail/common.h
+++ b/include/pybind11/detail/common.h
@@ -46,8 +46,8 @@
// Compiler version assertions
#if defined(__INTEL_COMPILER)
-# if __INTEL_COMPILER < 1500
-# error pybind11 requires Intel C++ compiler v15 or newer
+# if __INTEL_COMPILER < 1700
+# error pybind11 requires Intel C++ compiler v17 or newer
# endif
#elif defined(__clang__) && !defined(__apple_build_version__)
# if __clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ < 3)