From e5c2e3c8a6255fbb09b294e37b717dd3452e5ffb Mon Sep 17 00:00:00 2001 From: Joe George Date: Thu, 7 Jul 2016 14:21:50 -0400 Subject: ICE-7172 - Replace generated comparsion operators - Add ice_tuple function to structs and classes. Returns a tuple of data members - Replace generated comparsion for structs (and classes) with template comparsion operators which use ice_tuple --- cpp/src/Slice/Parser.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'cpp/src/Slice/Parser.cpp') diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp index 502d20677be..1c3eb315032 100644 --- a/cpp/src/Slice/Parser.cpp +++ b/cpp/src/Slice/Parser.cpp @@ -1649,6 +1649,27 @@ Slice::Container::hasNonLocalExceptions() const return false; } +bool +Slice::Container::hasStructs() const +{ + for(ContainedList::const_iterator p = _contents.begin(); p != _contents.end(); ++p) + { + StructPtr q = StructPtr::dynamicCast(*p); + if(q) + { + return true; + } + + ContainerPtr container = ContainerPtr::dynamicCast(*p); + if(container && container->hasStructs()) + { + return true; + } + } + + return false; +} + bool Slice::Container::hasExceptions() const { -- cgit v1.2.3