consider following example:
   // someLibrary.h  which is exported.
    struct HandlePrivate;
    typedef HandlePrivate&  Handle; 
    Handle getHandle(int code);
    void closeHandle(Handle handle);
   // someLibrary.cpp
   #include "someLibrary.h"
   struct HandlePrivate{};//definition of HandlePrivate;
   Handle getHandle(int code)
   {
        static HandlePrivate instance;
        return  code >= 0 
                ? instance 
                :  ( *(HandlePrivate*)0); // Hack, I know it's UB.
   }
Now, other programmer uses this library:
    // userSource.cpp
    #include "someLibrary.h"
    void foo(int code)
    {
        Handle h = getHandle(code);
        // some user code
       closeHandle(h);
    }
Question: When is may break user code (crash or something bad), if "SomeLibrary" author uses that hack (UB) ?
if user uses only Windows and Visual Studio 2010, answer is changed ?
Because, following example is not crashed !!! :
#include <functional>
#include <type_traits>
#include "someLibrary.h"
void foo(int code)
{
     typedef std::reference_wrapper< std::remove_reference<Handle>::type> reference;
     reference h = getHandle(code);
     closeHandle(h); // is not crash, if code = -1     !!!!!!!!!!  
// However, std::reference_wrapper::operator &() - uses dereference to pointer of 0. }
 
    