Hi Boosters, We submitted enable_if for formal review in July. The library does not seem to be on the review queue, and maybe it is not worth a full review. There was a kind of unofficial mini review after our submission, which brought up a few issues:
1. Whether to make enable_if MPL-aware or not. In the submitted version, the first parameter of the enable_if template is boolean, whereas some Boosters wanted it to be a type containing a boolean member constant named value. The latter plays better with MPL, and in some cases can avoid instantiating branches of conditional expressions (shortcircuiting). Close to consensus was reached that both versions of enable_if should be supported; naming was not decided on Dave Abrahams's suggestion was to use the name enable_if for the MPL-aware version, and enable_if_c for the version taking the boolean template parameter. We plan to adopt this naming convention. 2. Enable_if_lazy Some comments were against the name enable_if_lazy. We plan to change it to lazy_enable_if, particularly if the enable_if and enable_if_c naming convention is approved. 3. disable_if The submission included the disable_if template. The same functionality can be achieved with enable_if by negating the condition, and so someone asked it to be removed. On the other hand, there was opposition to its removal. We plan to keep disable_if for convenience. 4. Non-SFINAE compilers Dave has an implementation of enable_if which defaults to being always enabled for compilers that do not support SFINAE. We do not think this is the right approach, and believe that attemts to use enable_if on a compiler that does not support SFINAE, should cause an immediate error. 5. Non-partial specialization compilers Are there any compilers that support SFINAE but do not support partial specialization? If not, we plan to use partial specialization in our implementation. Do other Boosters think an official review is necessary, or what will the process be? The submitted version is in the sandbox: boost/utility libs/utility and in the Files section at YahooGroups. Note that none of the changes discussed above are currently in the code. Cheers, Jaakko & Jeremiah _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost