Fix CXX11 option to be available on MinGW & CygWin, but not MSVC.

- Previously we were disabling the CXX11 option when WIN32 was defined,
  which it can be on both MinGW & CygWin, even though the compilers
  there can support the -std=c++11 option.
- Now we disable the CXX11 option only when the compiler used is MSVC.

Change-Id: I68ebcf0a4241afe93892a3c6f79cdd98887e785a
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4d25fdf..96ae6d1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -104,7 +104,7 @@
 # under the MPL.
 OPTION(EIGENSPARSE
   "Enable Eigen as a sparse linear algebra library, WARNING: results in an LGPL licensed Ceres." OFF)
-if (NOT WIN32)
+if (NOT MSVC)
   # Ceres does not use C++11 internally, however it does use shared_ptr
   # (required) and unordered_map (if available), both of which were present in
   # previous iterations of what became C++11.  GCC & Clang can have both TR1 &
@@ -115,10 +115,12 @@
   # Enabling this option forces the use of the C++11 versions (& -std=c++11) if
   # available.
   #
-  # This option is not available on Windows, as there, any new (C++11 etc)
-  # features available are on by default and there is no analogue to -std=c++11.
+  # This option is not available on Windows when using MSVC, as there, any new
+  # (C++11 etc) features available are on by default and there is no analogue to
+  # -std=c++11.  It will however be available for MinGW & CygWin, which can
+  # support -std=c++11.
   option(CXX11 "Enable use of C++11 headers if available (requires client code use C++11)." OFF)
-endif(NOT WIN32)
+endif(NOT MSVC)
 option(EXPORT_BUILD_DIR
   "Export build directory using CMake (enables external use without install)." OFF)
 option(BUILD_TESTING "Enable tests" ON)
diff --git a/docs/source/building.rst b/docs/source/building.rst
index f7d30d5..af5c30a 100644
--- a/docs/source/building.rst
+++ b/docs/source/building.rst
@@ -546,7 +546,7 @@
    multi-threading with ``OpenMP`` is not supported. Turn this ``OFF``
    to disable multi-threading.
 
-#. ``CXX11 [Default: OFF]`` *Non-Windows platforms only*.
+#. ``CXX11 [Default: OFF]`` *Non-MSVC compilers only*.
 
    Although Ceres does not currently use C++11, it does use ``shared_ptr``
    (required) and ``unordered_map`` (if available); both of which existed in the
@@ -554,7 +554,7 @@
    Ceres can compile on pre-C++11 compilers, using the TR1/C++0x versions of
    ``shared_ptr`` & ``unordered_map``.
 
-   Note that on Linux (GCC & Clang), compiling against the TR1/C++0x versions:
+   Note that when using GCC & Clang, compiling against the TR1/C++0x versions:
    ``CXX11=OFF`` (the default) *does not* require ``-std=c++11`` when compiling
    Ceres, *nor* does it require that any client code using Ceres use
    ``-std=c++11``.   However, this will cause compile errors if any client code
@@ -587,9 +587,10 @@
    OS X 10.9+           ON          std               **Yes**
    ===================  ==========  ================  ======================================
 
-   The ``CXX11`` option does does not exist for Windows, as there any new C++
-   features available are enabled by default, and there is no analogue of
-   ``-std=c++11``.
+   The ``CXX11`` option does does not exist when using MSVC, as there any new
+   C++ features available are enabled by default, and there is no analogue of
+   ``-std=c++11``.  It will however be available on MinGW & CygWin, which can
+   support ``-std=c++11``.
 
 #. ``BUILD_SHARED_LIBS [Default: OFF]``: By default Ceres is built as
    a static library, turn this ``ON`` to instead build Ceres as a