summaryrefslogtreecommitdiff
path: root/cpp/include
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2015-11-10 08:28:42 +0100
committerBenoit Foucher <benoit@zeroc.com>2015-11-10 08:28:42 +0100
commit99f2269ce27971c33b7354fe899fd1bb549312b8 (patch)
tree031fff40e1fd1c0e65c1bfd558d3d58d5f2bed9d /cpp/include
parentAdded install rules for icegriddb36/icestormdb36 man pages (diff)
downloadice-99f2269ce27971c33b7354fe899fd1bb549312b8.tar.bz2
ice-99f2269ce27971c33b7354fe899fd1bb549312b8.tar.xz
ice-99f2269ce27971c33b7354fe899fd1bb549312b8.zip
Update AsyncResult.h
Added comment to explain why we extend std::function
Diffstat (limited to 'cpp/include')
-rw-r--r--cpp/include/Ice/AsyncResult.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/cpp/include/Ice/AsyncResult.h b/cpp/include/Ice/AsyncResult.h
index 1f236a4209d..71272445250 100644
--- a/cpp/include/Ice/AsyncResult.h
+++ b/cpp/include/Ice/AsyncResult.h
@@ -293,6 +293,11 @@ template<typename Callable, typename Callback> struct is_callable
static const bool value = callable_type<Callable>::value == callback_type<Callback>::value;
};
+//
+// COMPILERFIX: we have to use this function specialization to workaround an issue where
+// VS2012 and GCC 4.6 can't resolve the begin_xxx overloads if we just use std::function.
+// We use some SNIFAE here to help the compiler with the overload resolution.
+//
template<class S> class Function : public std::function<S>
{