diff --git a/core/base/inc/LinkDef2.h b/core/base/inc/LinkDef2.h
index 7d8a7aab570452b099d1480ab31605c515413f74..ae16450b7917677c4826df049fe79559b544a8f2 100644
--- a/core/base/inc/LinkDef2.h
+++ b/core/base/inc/LinkDef2.h
@@ -21,59 +21,21 @@
 
 #pragma create TClass string;
 #pragma link C++ class vector<string>;
+#pragma link C++ operator vector<string>;
 #ifdef G__VECTOR_HAS_CLASS_ITERATOR
 #pragma link C++ class vector<string>::iterator; 
-#pragma link C++ class vector<string>::reverse_iterator; 
-#pragma link C++ function operator!=(vector<string>,vector<string>); 
-#pragma link C++ function operator==(vector<string>,vector<string>); 
-#pragma link C++ function operator<=(vector<string>,vector<string>); 
-#pragma link C++ function operator>=(vector<string>,vector<string>); 
-#pragma link C++ function operator<(vector<string>,vector<string>); 
-#pragma link C++ function operator>(vector<string>,vector<string>); 
-#pragma link C++ function operator!=(vector<string>::iterator,vector<string>::iterator); 
-#pragma link C++ function operator==(vector<string>::iterator,vector<string>::iterator); 
-#pragma link C++ function operator<=(vector<string>::iterator,vector<string>::iterator); 
-#pragma link C++ function operator>=(vector<string>::iterator,vector<string>::iterator); 
-#pragma link C++ function operator<(vector<string>::iterator,vector<string>::iterator); 
-#pragma link C++ function operator>(vector<string>::iterator,vector<string>::iterator); 
-#pragma link C++ function operator+(long,vector<string>::iterator); 
-#pragma link C++ function operator-(vector<string>::iterator,vector<string>::iterator); 
-#pragma link C++ function operator!=(vector<string>::reverse_iterator,vector<string>::reverse_iterator); 
-#pragma link C++ function operator==(vector<string>::reverse_iterator,vector<string>::reverse_iterator); 
-//#pragma link C++ function operator<=(vector<string>::reverse_iterator,vector<string>::reverse_iterator); 
-//#pragma link C++ function operator>=(vector<string>::reverse_iterator,vector<string>::reverse_iterator); 
-//#pragma link C++ function operator<(vector<string>::reverse_iterator,vector<string>::reverse_iterator); 
-//#pragma link C++ function operator>(vector<string>::reverse_iterator,vector<string>::reverse_iterator); 
-//#pragma link C++ function operator+(long,vector<string>::reverse_iterator); 
-//#pragma link C++ function operator-(vector<string>::reverse_iterator,vector<string>::reverse_iterator);
+#pragma link C++ class vector<string>::reverse_iterator;
+#pragma link C++ operator vector<string>::iterator; 
+#pragma link C++ operator vector<string>::reverse_iterator;
 #endif
 
 #pragma link C++ class vector<TString>;
+#pragma link C++ operators vector<TString>;
 #ifdef G__VECTOR_HAS_CLASS_ITERATOR
 #pragma link C++ class vector<TString>::iterator; 
 #pragma link C++ class vector<TString>::reverse_iterator; 
-#pragma link C++ function operator!=(vector<TString>,vector<TString>); 
-#pragma link C++ function operator==(vector<TString>,vector<TString>); 
-#pragma link C++ function operator<=(vector<TString>,vector<TString>); 
-#pragma link C++ function operator>=(vector<TString>,vector<TString>); 
-#pragma link C++ function operator<(vector<TString>,vector<TString>); 
-#pragma link C++ function operator>(vector<TString>,vector<TString>); 
-#pragma link C++ function operator!=(vector<TString>::iterator,vector<TString>::iterator); 
-#pragma link C++ function operator==(vector<TString>::iterator,vector<TString>::iterator); 
-#pragma link C++ function operator<=(vector<TString>::iterator,vector<TString>::iterator); 
-#pragma link C++ function operator>=(vector<TString>::iterator,vector<TString>::iterator); 
-#pragma link C++ function operator<(vector<TString>::iterator,vector<TString>::iterator); 
-#pragma link C++ function operator>(vector<TString>::iterator,vector<TString>::iterator); 
-#pragma link C++ function operator+(long,vector<TString>::iterator); 
-#pragma link C++ function operator-(vector<TString>::iterator,vector<TString>::iterator); 
-#pragma link C++ function operator!=(vector<TString>::reverse_iterator,vector<TString>::reverse_iterator); 
-#pragma link C++ function operator==(vector<TString>::reverse_iterator,vector<TString>::reverse_iterator); 
-//#pragma link C++ function operator<=(vector<TString>::reverse_iterator,vector<TString>::reverse_iterator); 
-//#pragma link C++ function operator>=(vector<TString>::reverse_iterator,vector<TString>::reverse_iterator); 
-//#pragma link C++ function operator<(vector<TString>::reverse_iterator,vector<TString>::reverse_iterator); 
-//#pragma link C++ function operator>(vector<TString>::reverse_iterator,vector<TString>::reverse_iterator); 
-//#pragma link C++ function operator+(long,vector<TString>::reverse_iterator); 
-//#pragma link C++ function operator-(vector<TString>::reverse_iterator,vector<TString>::reverse_iterator); 
+#pragma link C++ operator vector<TString>::iterator; 
+#pragma link C++ operator vector<TString>::reverse_iterator;
 #endif
 
 #include <vector>
diff --git a/core/cont/inc/LinkDef.h b/core/cont/inc/LinkDef.h
index f54fdfad0c78bfc06bdc57ab9ec784714628b9ef..423c20d32f48ae00183867ceffd99fb65c5bb734 100644
--- a/core/cont/inc/LinkDef.h
+++ b/core/cont/inc/LinkDef.h
@@ -56,43 +56,19 @@
 #pragma link C++ class TVirtualCollectionProxy-;
 
 #pragma link C++ class vector<Int_t>;
+#pragma link C++ operators vector<Int_t>;
 #ifdef G__VECTOR_HAS_CLASS_ITERATOR
 #pragma link C++ class vector<Int_t>::iterator;
+#pragma link C++ operators vector<Int_t>::iterator;
 #pragma link C++ class vector<Int_t>::reverse_iterator;
-#pragma link C++ function operator!=(vector<Int_t>,vector<Int_t>);
-#pragma link C++ function operator==(vector<Int_t>,vector<Int_t>);
-#pragma link C++ function operator<=(vector<Int_t>,vector<Int_t>);
-#pragma link C++ function operator>=(vector<Int_t>,vector<Int_t>);
-#pragma link C++ function operator<(vector<Int_t>,vector<Int_t>);
-#pragma link C++ function operator>(vector<Int_t>,vector<Int_t>);
-#pragma link C++ function operator!=(vector<Int_t>::iterator,vector<Int_t>::iterator);
-#pragma link C++ function operator==(vector<Int_t>::iterator,vector<Int_t>::iterator);
-#pragma link C++ function operator<=(vector<Int_t>::iterator,vector<Int_t>::iterator);
-#pragma link C++ function operator>=(vector<Int_t>::iterator,vector<Int_t>::iterator);
-#pragma link C++ function operator<(vector<Int_t>::iterator,vector<Int_t>::iterator);
-#pragma link C++ function operator>(vector<Int_t>::iterator,vector<Int_t>::iterator);
-#pragma link C++ function operator+(long,vector<Int_t>::iterator);
-#pragma link C++ function operator-(vector<Int_t>::iterator,vector<Int_t>::iterator);
-#pragma link C++ function operator!=(vector<Int_t>::reverse_iterator,vector<Int_t>::reverse_iterator);
-#pragma link C++ function operator==(vector<Int_t>::reverse_iterator,vector<Int_t>::reverse_iterator);
-//#pragma link C++ function operator<=(vector<Int_t>::reverse_iterator,vector<Int_t>::reverse_iterator);
-//#pragma link C++ function operator>=(vector<Int_t>::reverse_iterator,vector<Int_t>::reverse_iterator);
-//#pragma link C++ function operator<(vector<Int_t>::reverse_iterator,vector<Int_t>::reverse_iterator);
-//#pragma link C++ function operator>(vector<Int_t>::reverse_iterator,vector<Int_t>::reverse_iterator);
-//#pragma link C++ function operator+(long,vector<Int_t>::reverse_iterator);
-//#pragma link C++ function operator-(vector<Int_t>::reverse_iterator,vector<Int_t>::reverse_iterator);
+#pragma link C++ operators vector<Int_t>::reverse_iterator;
 #endif
 
 #pragma link C++ nestedclass;
 #pragma link C++ nestedtypedef;
 
 #pragma link C++ class TBits::TReference-;
-#pragma link C++ function operator&(const TBits::TReference&, const TBits::TReference&);
-#pragma link C++ function operator|(const TBits::TReference&, const TBits::TReference&);
-#pragma link C++ function operator^(const TBits::TReference&, const TBits::TReference&);
-#pragma link C++ function operator&(const TBits&, const TBits&);
-#pragma link C++ function operator|(const TBits&, const TBits&);
-#pragma link C++ function operator^(const TBits&, const TBits&);
-#pragma link C++ function operator<<(ostream&, const TBits&);
+#pragma link C++ operators TBits;
+#pragma link C++ operators TBits::TReference;
 
 #endif
diff --git a/graf3d/eve/inc/LinkDef1.h b/graf3d/eve/inc/LinkDef1.h
index b9ebeb703cf999e0b353b314f64a2fb7b6369a8a..1d68ff6a3dd2a5212be7170cdc12ad8ee91d38dc 100644
--- a/graf3d/eve/inc/LinkDef1.h
+++ b/graf3d/eve/inc/LinkDef1.h
@@ -136,6 +136,7 @@
 #pragma link C++ class TEveProjection::PreScaleEntry_t+;
 #pragma link C++ class std::vector<TEveProjection::PreScaleEntry_t>;
 #pragma link C++ class std::vector<TEveProjection::PreScaleEntry_t>::iterator;
+#pragma link C++ operators std::vector<TEveProjection::PreScaleEntry_t>::iterator;
 #pragma link C++ typedef TEveProjection::vPreScale_t;
 #pragma link C++ typedef TEveProjection::vPreScale_i;
 #pragma link C++ class TEveRhoZProjection+;
diff --git a/math/mathcore/inc/LinkDef2.h b/math/mathcore/inc/LinkDef2.h
index 66b3b77f533c6ced73251eb04ed567c323e82514..7d76dea0fb90783c39ba921b124cfa5205b8d96b 100644
--- a/math/mathcore/inc/LinkDef2.h
+++ b/math/mathcore/inc/LinkDef2.h
@@ -27,34 +27,14 @@
 #endif
 
 #pragma link C++ class vector<Double_t>+;
+#pragma link C++ operators vector<Double_t>;
 #ifdef G__VECTOR_HAS_CLASS_ITERATOR
 #pragma link C++ class vector<Double_t>::iterator; 
 #pragma link C++ class vector<Double_t>::reverse_iterator; 
-#pragma link C++ function operator!=(vector<Double_t>,vector<Double_t>); 
-#pragma link C++ function operator==(vector<Double_t>,vector<Double_t>); 
-#pragma link C++ function operator<=(vector<Double_t>,vector<Double_t>); 
-#pragma link C++ function operator>=(vector<Double_t>,vector<Double_t>); 
-#pragma link C++ function operator<(vector<Double_t>,vector<Double_t>); 
-#pragma link C++ function operator>(vector<Double_t>,vector<Double_t>); 
-#pragma link C++ function operator!=(vector<Double_t>::iterator,vector<Double_t>::iterator); 
-#pragma link C++ function operator==(vector<Double_t>::iterator,vector<Double_t>::iterator); 
-#pragma link C++ function operator<=(vector<Double_t>::iterator,vector<Double_t>::iterator); 
-#pragma link C++ function operator>=(vector<Double_t>::iterator,vector<Double_t>::iterator); 
-#pragma link C++ function operator<(vector<Double_t>::iterator,vector<Double_t>::iterator); 
-#pragma link C++ function operator>(vector<Double_t>::iterator,vector<Double_t>::iterator); 
-#pragma link C++ function operator+(long,vector<Double_t>::iterator); 
-#pragma link C++ function operator-(vector<Double_t>::iterator,vector<Double_t>::iterator); 
-#pragma link C++ function operator!=(vector<Double_t>::reverse_iterator,vector<Double_t>::reverse_iterator); 
-#pragma link C++ function operator==(vector<Double_t>::reverse_iterator,vector<Double_t>::reverse_iterator); 
-//#pragma link C++ function operator<=(vector<Double_t>::reverse_iterator,vector<Double_t>::reverse_iterator); 
-//#pragma link C++ function operator>=(vector<Double_t>::reverse_iterator,vector<Double_t>::reverse_iterator); 
-//#pragma link C++ function operator<(vector<Double_t>::reverse_iterator,vector<Double_t>::reverse_iterator); 
-//#pragma link C++ function operator>(vector<Double_t>::reverse_iterator,vector<Double_t>::reverse_iterator); 
-//#pragma link C++ function operator+(long,vector<Double_t>::reverse_iterator); 
-//#pragma link C++ function operator-(vector<Double_t>::reverse_iterator,vector<Double_t>::reverse_iterator);
+#pragma link C++ operators vector<Double_t>::iterator; 
+#pragma link C++ operators vector<Double_t>::reverse_iterator; 
 #endif
 
- 
 #pragma link C++ global gRandom;
 
 #pragma link C++ class TRandom+;