1
0
Эх сурвалжийг харах

cmTarget: Remove template argument workaround.

Pre-C++98 compilers required that the template argument be
used in the function parameters.  Those compilers are no longer
supported as hosts, so drop the workaround.
Stephen Kelly 10 жил өмнө
parent
commit
c697c1fafe

+ 0 - 28
Help/manual/cmake-developer.7.rst

@@ -28,34 +28,6 @@ Some implementations have a ``std::auto_ptr`` which can not be used as a
 return value from a function. ``std::auto_ptr`` may not be used. Use
 ``cmsys::auto_ptr`` instead.
 
-Template Parameter Defaults
----------------------------
-
-On ancient compilers, C++ template must use template parameters in function
-arguments.  If no parameter of that type is needed, the common workaround is
-to add a defaulted pointer to the type to the templated function. However,
-this does not work with other ancient compilers:
-
-.. code-block:: c++
-
-  template<typename PropertyType>
-  PropertyType getTypedProperty(cmTarget* tgt, const char* prop,
-                                PropertyType* = 0) // Wrong
-    {
-
-    }
-
-.. code-block:: c++
-
-  template<typename PropertyType>
-  PropertyType getTypedProperty(cmTarget* tgt, const char* prop,
-                                PropertyType*) // Ok
-    {
-
-    }
-
-and invoke it with the value ``0`` explicitly in all cases.
-
 size_t
 ------
 

+ 5 - 9
Source/cmTarget.cxx

@@ -4711,13 +4711,11 @@ bool cmTarget::IsNullImpliedByLinkLibraries(const std::string &p) const
 
 //----------------------------------------------------------------------------
 template<typename PropertyType>
-PropertyType getTypedProperty(cmTarget const* tgt, const std::string& prop,
-                              PropertyType *);
+PropertyType getTypedProperty(cmTarget const* tgt, const std::string& prop);
 
 //----------------------------------------------------------------------------
 template<>
-bool getTypedProperty<bool>(cmTarget const* tgt, const std::string& prop,
-                            bool *)
+bool getTypedProperty<bool>(cmTarget const* tgt, const std::string& prop)
 {
   return tgt->GetPropertyAsBool(prop);
 }
@@ -4725,8 +4723,7 @@ bool getTypedProperty<bool>(cmTarget const* tgt, const std::string& prop,
 //----------------------------------------------------------------------------
 template<>
 const char *getTypedProperty<const char *>(cmTarget const* tgt,
-                                           const std::string& prop,
-                                           const char **)
+                                           const std::string& prop)
 {
   return tgt->GetProperty(prop);
 }
@@ -4937,8 +4934,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget const* tgt,
                                           CompatibleType t,
                                           PropertyType *)
 {
-  PropertyType propContent = getTypedProperty<PropertyType>(tgt, p,
-                                                            0);
+  PropertyType propContent = getTypedProperty<PropertyType>(tgt, p);
   const bool explicitlySet = tgt->GetProperties()
                                   .find(p)
                                   != tgt->GetProperties().end();
@@ -4991,7 +4987,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget const* tgt,
                             != theTarget->GetProperties().end();
     PropertyType ifacePropContent =
                     getTypedProperty<PropertyType>(theTarget,
-                              interfaceProperty, 0);
+                              interfaceProperty);
 
     std::string reportEntry;
     if (ifaceIsSet)