// { dg-do assemble } // 980924 bkoz // just a quick test for export, to make sure we are warning for it. // CHANGE ME when it's supported // 14 Templates //p 6 // A namespace-scope declaration or definintion of a non-line function // template, a non-inline member function template, a non-inline // member function of a class template or a static data member of a // class template may be preceeded by the export keyword. If such a // template is defined in the same translation unit in which it is // declared as exported, the definition is considered to be // exported. The first declaration of the template containing the // export keyword must not follow the definition. (meaning that export // can't beredeclared as non-export??) // 1 // template definition export template // { dg-warning "" } bool templ_one(T a) { if (a > 0) return true; else return false; } // 2 // static data, mf, mf template template class X_one { unsigned short id; T type; public: static const bool is_specialized ; X_one(const unsigned short& us = 5): id(us), type(T(0)) {} unsigned short ret_id (); template bool compare_ge(T2 test); }; export template // { dg-warning "" } const bool X_one::is_specialized = false; export template // { dg-warning "" } unsigned short X_one::ret_id() { return id; } export template // { dg-warning "" } bool compare_ge(T2 test) { if (test > type) // { dg-error "" } .* return true; return false; }