diff --git a/alib2std/src/extensions/container/variant.hpp b/alib2std/src/extensions/container/variant.hpp
index 197a400504d01e94d2b1ad08a1258d18e8b89d73..5e014a9e049e57159b4d84b884e1e11a9afc5609 100644
--- a/alib2std/src/extensions/container/variant.hpp
+++ b/alib2std/src/extensions/container/variant.hpp
@@ -1321,62 +1321,62 @@ std::string to_string ( const ext::variant < Ts ... > & value ) {
 	return ( std::string ) value;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator < ( const ext::variant < Ts ... > & first, const T & second ) {
 	return first.compare ( second ) < 0;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator > ( const ext::variant < Ts ... > & first, const T & second ) {
 	return first.compare ( second ) > 0;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator <= ( const ext::variant < Ts ... > & first, const T & second ) {
 	return first.compare ( second ) <= 0;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator >= ( const ext::variant < Ts ... > & first, const T & second ) {
 	return first.compare ( second ) >= 0;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator == ( const ext::variant < Ts ... > & first, const T & second ) {
 	return first.compare ( second ) == 0;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator != ( const ext::variant < Ts ... > & first, const T & second ) {
 	return first.compare ( second ) != 0;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator < ( const T & first, const ext::variant < Ts ... > & second ) {
 	return second > first;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator > ( const T & first, const ext::variant < Ts ... > & second ) {
 	return second < first;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator <= ( const T & first, const ext::variant < Ts ... > & second ) {
 	return second >= first;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator >= ( const T & first, const ext::variant < Ts ... > & second ) {
 	return second <= first;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator == ( const T & first, const ext::variant < Ts ... > & second ) {
 	return second == first;
 }
 
-template < class ... Ts, class T >
+template < class ... Ts, class T, typename std::enable_if < ext::is_in < T, Ts ... >::value >::type * = nullptr >
 bool operator != ( const T & first, const ext::variant < Ts ... > & second ) {
 	return second != first;
 }
@@ -1386,7 +1386,7 @@ bool operator != ( const T & first, const ext::variant < Ts ... > & second ) {
  * Class to help building of the variant type or, in case variant is requested to be constructed from single type or more types but all the same, that concrete type.
  *
  * \tparam Res the resulting contstructed variant
- * \tparam Ts ... pack of types to construct the variant from 
+ * \tparam Ts ... pack of types to construct the variant from
  */
 template < class Res, class ... Ts >
 struct variant_builder_impl {