diff --git a/src/shared/cplusplus/Control.cpp b/src/shared/cplusplus/Control.cpp
index 19a9803baecc694fecf0a63a3d5aaf4170931f1e..bc8cb2f877ace5896258199bdbdd31e0be9b416e 100644
--- a/src/shared/cplusplus/Control.cpp
+++ b/src/shared/cplusplus/Control.cpp
@@ -202,9 +202,10 @@ template <> struct Compare<SelectorNameId>
 template <typename _Tp>
 class Table: public std::set<_Tp, Compare<_Tp> >
 {
+    typedef std::set<_Tp, Compare<_Tp> > _Base;
 public:
     _Tp *intern(const _Tp &element)
-    { return const_cast<_Tp *>(&*insert(element).first); }
+    { return const_cast<_Tp *>(&*_Base::insert(element).first); }
 };
 
 } // end of anonymous namespace