The c++ compiler does not seem to understand using statements of a template function in a base class as shown in the example below. I've got one workaround commented out. Are there any other alternative ways of using the 'using' statement that the compiler will understand, as my workaround is rather verbose and prone to error? Is this a known bug and if not, where is the best place to file the bug. I've tried versions 11, 12, and 12.1.
William $ cat using_bug.cxx #include <vector> class MyVector : private std::vector<double> { public: // template <class InputIterator> void assign(InputIterator first, InputIterator last) { std::vector<double>::assign<InputIterator>(first, last); } using std::vector<double>::assign; }; int main(int /*argc*/, char* /*argv*/ []) { MyVector retval; const double *begin = 0; const double *end = 0; retval.assign<const double *>(begin, end); return 0; } $ /sbcimp/run/tp/sun/SUNWspro/v12.1-20090630/bin/CC -c -mt -xlibmopt -Bdynamic -xO5 -library=stlport4 +w -D_SOLARIS_ -Bdynamic using_bug.cxx "using_bug.cxx", line 13: Error: std::vector<double>::assign<const double*>(const double*, const double*) is not accessible from main(int, char**). 1 Error(s) detected. -- This message posted from opensolaris.org