Author: sebor
Date: Fri Mar 16 16:50:03 2007
New Revision: 519184

URL: http://svn.apache.org/viewvc?view=rev&rev=519184
Log:
2007-03-16  Martin Sebor  <[EMAIL PROTECTED]>

        * INSTANTIATE_DEFAULT_ARGS.cpp: Exercised the ability to explicitly
        instantiate class templates whose member functions declare default
        arguments referring to static member functions of the template
        parameter that aren't declared (or well-formed) for the argument
        used in the instantiation directive. Reveals compiler bugs such as
        IBM XLC++ 8.0 STDCXX-363.

Modified:
    incubator/stdcxx/trunk/etc/config/src/INSTANTIATE_DEFAULT_ARGS.cpp

Modified: incubator/stdcxx/trunk/etc/config/src/INSTANTIATE_DEFAULT_ARGS.cpp
URL: 
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/etc/config/src/INSTANTIATE_DEFAULT_ARGS.cpp?view=diff&rev=519184&r1=519183&r2=519184
==============================================================================
--- incubator/stdcxx/trunk/etc/config/src/INSTANTIATE_DEFAULT_ARGS.cpp 
(original)
+++ incubator/stdcxx/trunk/etc/config/src/INSTANTIATE_DEFAULT_ARGS.cpp Fri Mar 
16 16:50:03 2007
@@ -6,11 +6,19 @@
 template <class T>
 struct A
 {
+    // must be able to use inaccessible members
     void foo (const T& = T ()) { }
+
+    // must be able to use non-existent members
+    void bar (const T& = T::foobar ()) { }
 };
 
+template <class T>
+void A<T>::bar (const T&) { }
+
 struct B
 {
+    // no foobar() declared
 private:
     B () { }
 };


Reply via email to