J'ai quelques struct null, par exemple :
struct null_type
{
null_type& someNonVirtualMethod()
{
return *this;
}
};
Et dans certaines fonctions, je dois passer la référence à ce type. Raison :
template <typename T1 = null_type, typename T2 = null_type, ... >
class LooksLikeATupleButItsNotATuple
{
public:
LooksLikeATupleButItsNotATuple(T1& ref1 = defParamHere, T2& ref2 = andHere..)
: _ref1(ref1), _ref2(ref2), ...
{
}
void someCompositeFunctionHere()
{
_ref1.someNonVirtualMethod();
_ref2.someNonVirtualMethod();
...
}
private:
T1& _ref1;
T2& _ref2;
...;
};
C'est une bonne pratique d'utiliser la référence nulle comme paramètre par défaut ?
*static_cast<NullType*>(0)
Il fonctionne sur MSVC, mais j'ai quelques doutes...