소스 검색

Use C++11 '= delete' instead of CM_EQ_DELETE

We now require C++11 support including `= delete`.  Drop use of
the old compatibility macro.
Brad King 8 년 전
부모
커밋
b8018135b5
6개의 변경된 파일3개의 추가작업 그리고 35개의 파일을 삭제
  1. 0 8
      Help/dev/source.rst
  2. 0 14
      Source/Checks/cm_cxx_eq_delete.cxx
  3. 0 1
      Source/Checks/cm_cxx_features.cmake
  4. 2 9
      Source/cmConfigure.cmake.h.in
  5. 1 2
      Source/cmSourceFileLocation.h
  6. 0 1
      bootstrap

+ 0 - 8
Help/dev/source.rst

@@ -30,14 +30,6 @@ building on older toolchains some constructs need to be handled with care:
 
   The ``std::auto_ptr`` template is deprecated in C++11. Use ``std::unique_ptr``.
 
-* Use ``CM_EQ_DELETE;`` instead of ``= delete;``.
-
-  Older C++11 compilers do not support deleting functions.  Using
-  ``CM_EQ_DELETE`` will delete the functions if the compiler supports it and
-  give them no implementation otherwise.  Calling such a function will lead
-  to compiler errors if the compiler supports *deleted* functions and linker
-  errors otherwise.
-
 * Use ``CM_DISABLE_COPY(Class)`` to mark classes as non-copyable.
 
   The ``CM_DISABLE_COPY`` macro should be used in the private section of a

+ 0 - 14
Source/Checks/cm_cxx_eq_delete.cxx

@@ -1,14 +0,0 @@
-struct Foo
-{
-  Foo() {}
-  ~Foo() {}
-  Foo(Foo const&) = delete;
-  Foo& operator=(Foo const&) = delete;
-  int test() const { return 0; }
-};
-
-int main()
-{
-  Foo const foo;
-  return foo.test();
-}

+ 0 - 1
Source/Checks/cm_cxx_features.cmake

@@ -41,7 +41,6 @@ function(cm_check_cxx_feature name)
   endif()
 endfunction()
 
-cm_check_cxx_feature(eq_delete)
 cm_check_cxx_feature(fallthrough)
 if(NOT CMake_HAVE_CXX_FALLTHROUGH)
   cm_check_cxx_feature(gnu_fallthrough)

+ 2 - 9
Source/cmConfigure.cmake.h.in

@@ -19,7 +19,6 @@
 #cmakedefine HAVE_UNSETENV
 #cmakedefine CMAKE_USE_ELF_PARSER
 #cmakedefine CMAKE_USE_MACH_PARSER
-#cmakedefine CMake_HAVE_CXX_EQ_DELETE
 #cmakedefine CMake_HAVE_CXX_FALLTHROUGH
 #cmakedefine CMake_HAVE_CXX_GNU_FALLTHROUGH
 #cmakedefine CMake_HAVE_CXX_ATTRIBUTE_FALLTHROUGH
@@ -27,12 +26,6 @@
 #define CMAKE_BIN_DIR "/@CMAKE_BIN_DIR@"
 #define CMAKE_DATA_DIR "/@CMAKE_DATA_DIR@"
 
-#ifdef CMake_HAVE_CXX_EQ_DELETE
-#define CM_EQ_DELETE = delete
-#else
-#define CM_EQ_DELETE
-#endif
-
 #if defined(CMake_HAVE_CXX_FALLTHROUGH)
 #define CM_FALLTHROUGH [[fallthrough]]
 #elif defined(CMake_HAVE_CXX_GNU_FALLTHROUGH)
@@ -44,7 +37,7 @@
 #endif
 
 #define CM_DISABLE_COPY(Class)                                                \
-  Class(Class const&) CM_EQ_DELETE;                                           \
-  Class& operator=(Class const&) CM_EQ_DELETE;
+  Class(Class const&) = delete;                                               \
+  Class& operator=(Class const&) = delete;
 
 #endif

+ 1 - 2
Source/cmSourceFileLocation.h

@@ -90,8 +90,7 @@ private:
   void Update(cmSourceFileLocation const& loc);
   void UpdateExtension(const std::string& name);
 
-  cmSourceFileLocation& operator=(const cmSourceFileLocation& loc)
-    CM_EQ_DELETE;
+  cmSourceFileLocation& operator=(const cmSourceFileLocation& loc) = delete;
 };
 
 #endif

+ 0 - 1
bootstrap

@@ -1270,7 +1270,6 @@ cmake_report cmConfigure.h${_tmp} "#define CMAKE_BOOTSTRAP_BINARY_DIR \"${CMAKE_
 cmake_report cmConfigure.h${_tmp} "#define CMAKE_BIN_DIR \"/bootstrap-not-insalled\""
 cmake_report cmConfigure.h${_tmp} "#define CMAKE_DATA_DIR \"/bootstrap-not-insalled\""
 cmake_report cmConfigure.h${_tmp} "#define CMAKE_BOOTSTRAP"
-cmake_report cmConfigure.h${_tmp} "#define CM_EQ_DELETE"
 cmake_report cmConfigure.h${_tmp} "#define CM_FALLTHROUGH"
 cmake_report cmConfigure.h${_tmp} "#define CM_DISABLE_COPY(Class)"