// // Copyright (c) ZeroC, Inc. All rights reserved. // #ifndef ICE_DEFAULT_VALUE_FACTORY_H #define ICE_DEFAULT_VALUE_FACTORY_H #include #include namespace IceInternal { #ifdef ICE_CPP11_MAPPING template ::std::shared_ptr<::Ice::Value> #ifdef NDEBUG defaultValueFactory(const std::string&) #else defaultValueFactory(const std::string& typeId) #endif { assert(typeId == V::ice_staticId()); return std::make_shared(); } #else template class DefaultValueFactory : public Ice::ValueFactory { public: DefaultValueFactory(const ::std::string& typeId) : _typeId(typeId) { } #ifndef NDEBUG virtual ::Ice::ObjectPtr create(const ::std::string& typeId) #else virtual ::Ice::ObjectPtr create(const ::std::string&) #endif { assert(typeId == _typeId); return new V; } private: const ::std::string _typeId; }; #endif } #endif