Jaakko,

There are three issues I have with enable_if as it is.

1. enable_if takes a boolean template argument. I would like to see it
taking a type with a member value that that can be used in an ICE. This would play nice with mpl and type_traits and would make enable_if expressions shorter.


template <class T>
typename enable_if<boost::is_arithmetic<T>, void>::type foo(T t) {
  std::cout << "An arithmetic type\n";
}

2. I am unhappy about the name enable_if_lazy. First it reads as a condition, whereas being lazy is not the condition. Second it is inconsistent with the mpl apply_if. At least the inconsistency should be fixed IMO.

3. To me the disable templates don't add any value. They are just duplicating the amount of code without any real benefit. I know this is a matter of taste, it's just that I would prefer a minimal interface.

Thomas

--
Dipl.-Ing. Thomas Witt
Institut fuer Verkehrswesen, Eisenbahnbau und -betrieb, Universitaet Hannover
voice: +49(0) 511 762 - 4273, fax: +49(0) 511 762-3001
http://www.ive.uni-hannover.de


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to