// { dg-do assemble } // Source: Neil Booth, from PR # 106. 4 Dec 2000. template <bool b> class bar { }; class A_a { public: static const bool b = true; }; class B_b { public: static const bool b = false; }; template <class A, class B> class foo { }; template <class A, class B> bar<(A::b || B::b)> do_funky(const foo<A, B>&); int main() { bar<true> a_bar = do_funky(foo<A_a, B_b>()); }