0

So I was wondering how concepts lite could be implemented in the language. After some digging in boost/concept's headers I came across this struct:

template <class Model>
struct user_requirements 
{
    ~user_requirements() { ((Model*)0)->~Model(); }
}

I thought that calling a member function through a null pointer is undefined behavior. Even if the destructor doesn't use any member variables, should this be relied on?

Veritas
  • 2,150
  • 3
  • 16
  • 40

0 Answers0