Details
-
Improvement
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
4.1.2, 4.1.3, 4.1.4, 4.2.0, 4.2.1
-
None
-
all
-
Patch Available
-
Compiler Error
Description
I am trying to use Boost built using stdcxx on Solaris. I was able to build the date_time
library but when I try to compile a test program I end up with errors related to incomplete
types. I have narrowed the issue to the following code
#include <map>
#include <string>
using namespace std;
template <class T>
struct C {
typedef multimap<T,C> maps;
typedef typename maps::value_type value_type;
};
int main () {
C<std::string> c;
}
When I compile using the default Sun CC libraries or rwtools7_std or stlport4, the code
compiles fine. But when I compile using stdcxx, I end up with the following errors.
"/opt/idev3/dbapatla/apache-stdcxx-4.1.3/include/rw/_pair.h", line 55: Error: In this declaration
"second" is of an incomplete type "C<std::string>".
"/opt/idev3/dbapatla/apache-stdcxx-4.1.3/include/rw/_tree.h", line 86: Where: While specializing
"std::pair<const std::string, C<std::string>>".
"/opt/idev3/dbapatla/apache-stdcxx-4.1.3/include/rw/_tree.h", line 86: Where: Specialized
in _rw::_rw_rb_tree_node<std::allocator<std::pair<const std::string, C<std::string>>>,
std::pair<const std::string, C<std::string>>, std::string, _rw::_select1st<std::pair<const
std::string, C<std::string>>, std::string>>.
"/opt/idev3/dbapatla/apache-stdcxx-4.1.3/include/rw/_tree.h", line 259: Where: Specialized
in _rw::_rb_tree<std::string, std::pair<const std::string, C<std::string>>,
_rw::_select1st<std::pair<const std::string, C<std::string>>, std::string>,
std::less<std::string>, std::allocator<std::pair<const std::string, C<std::string>>>>.
"/opt/idev3/dbapatla/apache-stdcxx-4.1.3/include/map", line 323: Where: Specialized in
std::multimap<std::string, C<std::string>, std::less<std::string>, std::allocator<std::pair<const
std::string, C<std::string>>>>.
"test2.cpp", line 9: Where: Specialized in C<std::string>.
"test2.cpp", line 13: Where: Specialized in non-template code.
1 Error(s) detected.