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
|
return value from a function. ``std::auto_ptr`` may not be used. Use
|
||||||
``cmsys::auto_ptr`` instead.
|
``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
|
size_t
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|
|
@ -4711,13 +4711,11 @@ bool cmTarget::IsNullImpliedByLinkLibraries(const std::string &p) const
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
template<typename PropertyType>
|
template<typename PropertyType>
|
||||||
PropertyType getTypedProperty(cmTarget const* tgt, const std::string& prop,
|
PropertyType getTypedProperty(cmTarget const* tgt, const std::string& prop);
|
||||||
PropertyType *);
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
template<>
|
template<>
|
||||||
bool getTypedProperty<bool>(cmTarget const* tgt, const std::string& prop,
|
bool getTypedProperty<bool>(cmTarget const* tgt, const std::string& prop)
|
||||||
bool *)
|
|
||||||
{
|
{
|
||||||
return tgt->GetPropertyAsBool(prop);
|
return tgt->GetPropertyAsBool(prop);
|
||||||
}
|
}
|
||||||
|
@ -4725,8 +4723,7 @@ bool getTypedProperty<bool>(cmTarget const* tgt, const std::string& prop,
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
template<>
|
template<>
|
||||||
const char *getTypedProperty<const char *>(cmTarget const* tgt,
|
const char *getTypedProperty<const char *>(cmTarget const* tgt,
|
||||||
const std::string& prop,
|
const std::string& prop)
|
||||||
const char **)
|
|
||||||
{
|
{
|
||||||
return tgt->GetProperty(prop);
|
return tgt->GetProperty(prop);
|
||||||
}
|
}
|
||||||
|
@ -4937,8 +4934,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget const* tgt,
|
||||||
CompatibleType t,
|
CompatibleType t,
|
||||||
PropertyType *)
|
PropertyType *)
|
||||||
{
|
{
|
||||||
PropertyType propContent = getTypedProperty<PropertyType>(tgt, p,
|
PropertyType propContent = getTypedProperty<PropertyType>(tgt, p);
|
||||||
0);
|
|
||||||
const bool explicitlySet = tgt->GetProperties()
|
const bool explicitlySet = tgt->GetProperties()
|
||||||
.find(p)
|
.find(p)
|
||||||
!= tgt->GetProperties().end();
|
!= tgt->GetProperties().end();
|
||||||
|
@ -4991,7 +4987,7 @@ PropertyType checkInterfacePropertyCompatibility(cmTarget const* tgt,
|
||||||
!= theTarget->GetProperties().end();
|
!= theTarget->GetProperties().end();
|
||||||
PropertyType ifacePropContent =
|
PropertyType ifacePropContent =
|
||||||
getTypedProperty<PropertyType>(theTarget,
|
getTypedProperty<PropertyType>(theTarget,
|
||||||
interfaceProperty, 0);
|
interfaceProperty);
|
||||||
|
|
||||||
std::string reportEntry;
|
std::string reportEntry;
|
||||||
if (ifaceIsSet)
|
if (ifaceIsSet)
|
||||||
|
|
Loading…
Reference in New Issue