Optional parameter for reference to pointer?

c++, option-type, parameters, pointers, reference

Solution

You could just overload the function

template <typename T>
inline void Delete (T *&MemoryToFree){
        delete MemoryToFree;
        MemoryToFree = NULL;
}

template <typename T, typename T2>
inline void Delete (T *&MemoryToFree, T2 *&MemoryToFree2){
        delete MemoryToFree;
        MemoryToFree = NULL;

        delete MemoryToFree2;
        MemoryToFree2 = NULL;
}

Problem

How do I declare the second parameter as optional? ``` template <typename T> inline void Delete (T *&MemoryToFree, T *&MemoryToFree2 = ){ delete MemoryToFree; MemoryToFree = NULL; delete MemoryToFree2; MemoryToFree2 = NULL; } ``` I tried several things after the = operator, like NULL, (T*)NULL etc. Can this be done? The only way the compiler let me do it was using an overload... ``` template <typename T, typename T2> inline void Delete (T *&MemoryToFree, T2 *&MemoryToFree2){ delete MemoryToFree; MemoryToFree = NULL; delete MemoryToFree2; MemoryToFree2 = NULL; } ```

Original source