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.
This commit is contained in:
parent
5c635fa624
commit
c697c1fafe
|
@ -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
|
||||
------
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue