diff options
Diffstat (limited to 'cpp/src/Slice/CPlusPlusUtil.cpp')
-rw-r--r-- | cpp/src/Slice/CPlusPlusUtil.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp index b65006e6c20..0a06db2ef8f 100644 --- a/cpp/src/Slice/CPlusPlusUtil.cpp +++ b/cpp/src/Slice/CPlusPlusUtil.cpp @@ -648,6 +648,20 @@ Slice::typeToString(const TypePtr& type, const StringList& metaData, int typeCtx "::std::shared_ptr<void>", "::std::shared_ptr<::Ice::Value>" }; + + if((typeCtx & TypeContextLocal) != 0) + { + for(StringList::const_iterator i = metaData.begin(); i != metaData.end(); ++i) + { + const string cppType = "cpp:type:"; + const string meta = *i; + + if(meta.find(cppType) == 0) + { + return meta.substr(cppType.size()); + } + } + } BuiltinPtr builtin = BuiltinPtr::dynamicCast(type); if(builtin) |