id summary reporter owner description type status milestone component version severity resolution keywords cc 7700 remove_if with Placeholder Expression as predicate causes instantiation of PlaceHolder Expression before argument binding in GCC 4.7.2 felipe.m.almeida@… Kohei Takahashi " The following code instantiates meta_func >, which causes a compile error. The problem seems to be with the mpl::not_ which involves the predicate with remove_if. The same error doesn't happen with filter_if. The equivalent code in MPL-only doesn't cause the same error (mpl::remove_if). #include #include namespace mpl = boost::mpl; namespace fusion = boost::fusion; struct element { typedef mpl::false_ type; }; template struct meta_func { typedef typename T::type type; }; int main() { fusion::vector e; fusion::as_vector(fusion::remove_if >(e)); } " Bugs new To Be Determined fusion Boost 1.52.0 Regression