optional (nullable) objects for C++11