| // { dg-do run } |
| // PRMS Id: 6826 |
| // Check that unnecessary templates are not instantiated. |
| |
| template <class T> |
| class Test |
| { |
| public: |
| void doThiss(); |
| void doThat(); |
| }; |
| |
| template <class T> |
| void Test<T>::doThiss() |
| { |
| T x; |
| |
| x.thiss(); |
| } |
| |
| template <class T> |
| void Test<T>::doThat() |
| { |
| T x; |
| |
| x.that(); |
| } |
| |
| class A |
| { |
| public: |
| void thiss() {} |
| }; |
| |
| class B |
| { |
| public: |
| void that() {} |
| }; |
| |
| int main() |
| { |
| Test<A> a; |
| a.doThiss(); // a.doThat() is not well formed, but then |
| // it's not used so needn't be instantiated. |
| |
| Test<B> b; |
| b.doThat(); // simillarly b.doThiss(); |
| } |