summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/StreamHelpers.h
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2016-07-11 09:17:55 -0400
committerJoe George <joe@zeroc.com>2016-07-11 09:25:01 -0400
commitef64ff67e60bf1e64d15608b96fcb4591add2426 (patch)
tree71d77ee61490e0fb213128468a910d6303b5645e /cpp/include/Ice/StreamHelpers.h
parentUpdate to use latest Gradle Ice builder version (diff)
downloadice-ef64ff67e60bf1e64d15608b96fcb4591add2426.tar.bz2
ice-ef64ff67e60bf1e64d15608b96fcb4591add2426.tar.xz
ice-ef64ff67e60bf1e64d15608b96fcb4591add2426.zip
StreamReader/Writer improvements
- No longer generate StreamWriter partial template specialization for C++ classes/structs/exceptions which have no optional members. - Reduce generated code size for all C++11 StreamReader/Writers.
Diffstat (limited to 'cpp/include/Ice/StreamHelpers.h')
-rw-r--r--cpp/include/Ice/StreamHelpers.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/cpp/include/Ice/StreamHelpers.h b/cpp/include/Ice/StreamHelpers.h
index 024f50eae5f..a7773a27090 100644
--- a/cpp/include/Ice/StreamHelpers.h
+++ b/cpp/include/Ice/StreamHelpers.h
@@ -360,9 +360,12 @@ struct StreamHelper<T, StreamHelperCategoryBuiltin>
template<typename T, typename S>
struct StreamWriter
{
- static inline void write(S*, const T&)
+ static inline void write(S* stream, const T& v)
{
- // Default is to do write nothing
+#ifdef ICE_CPP11_MAPPING
+ stream->writeAll(v.ice_tuple());
+#endif
+ // Default is to write nothing for C++98
}
};