[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
Title: | C++ |
Notice: | Read 1.* and use keywords (e.g. SHOW KEY/FULL KIT_CXX_VAX_VMS) |
Moderator: | DECCXX::AMARTIN |
|
Created: | Fri Nov 06 1987 |
Last Modified: | Thu Jun 05 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 3604 |
Total number of notes: | 18242 |
3578.0. "Typedef map of map STL, ld: unresolved ...?" 3578.0" by KERNEL::PULLEY (Come! while living waters flow) Wed May 21 1997 08:21
Hi,
I've a customer on Digital UNIX v4.0 564, C++ v5.5-004.
They find that if they try to use a map of map, at the link stage they get
a large unresolved symbol.
csh> more some_maps.cxx
#include <string>
#include <map>
typedef map<string,int> mapsi;
typedef map<string,mapsi> mapsmsi;
csh> cxx some_maps.cxx
ld:
Unresolved:
main
rb_tree<basic_string<char, string_char_traits<char>, allocator<char> >,
pair<con
st basic_string<char, string_char_traits<char>, allocator<char> >,
map<basic_str
ing<char, string_char_traits<char>, allocator<char> >, int,
less<basic_string<ch
ar, string_char_traits<char>, allocator<char> > >, allocator<pair<const
basic_st
ring<char, string_char_traits<char>, allocator<char> >, int> > > >,
select1st<pa
ir<const basic_string<char, string_char_traits<char>, allocator<char> >,
map<bas
ic_string<char, string_char_traits<char>, allocator<char> >, int,
less<basic_str
ing<char, string_char_traits<char>, allocator<char> > >, allocator<pair<const
ba
sic_string<char, string_char_traits<char>, allocator<char> >, int> > > >,
basic_
string<char, string_char_traits<char>, allocator<char> > >,
less<basic_string<ch
ar, string_char_traits<char>, allocator<char> > >, >::NIL
Thanks for any suggestions,
Steve.
T.R | Title | User | Personal Name | Date | Lines |
---|
3578.1 | this is a known automatic instantiation compiler bug, it will not be fixed until 6.0 | DECC::J_WARD | | Wed May 21 1997 10:37 | 12 |
|
This was added to the V5.6 (field test) release notes,
in Section 1.13.7 Known Problems:
When creating very complicated instantiations (for example, a map of a map
of string), you may get a link error when using automatic instantiation (the
name of the undefined symbol will be longer than 1022 chars).
To workaround this, you can use manual instantiation or local instantiation
(see Section 1.11).
If I compile your program with -nopt -define_templates, it works.
|