This is regarding the template problem that Amir had with my template code
in src/support/translator.h
On Thu, 3 Aug 2000, Amir Karger wrote:
> gcc version 2.95 19990728 (release)
> CVS updated just now
>
>
> Making all in insets
> make[3]: Entering directory `/home/karger/lyx/CVS/lyx-devel/src/insets'
> /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../src -I./../
>-I../.. -I../.. -isystem /usr/X11R6/include -g -O -fno-rtti -fno-exceptions -ansi
>-W -Wall -Wno-return-type -pedantic -c insetgraphicsParams.C
> g++ -DHAVE_CONFIG_H -I. -I. -I../../src -I./../ -I../.. -I../.. -isystem
>/usr/X11R6/include -g -O -fno-rtti -fno-exceptions -ansi -W -Wall -Wno-return-type
>-pedantic -Wp,-MD,.deps/insetgraphicsParams.pp -c insetgraphicsParams.C -o
>insetgraphicsParams.o
> In file included from insetgraphicsParams.C:19:
> ../../src/support/translator.h: In method `const T2 & Translator<T1,T2>::find(const
>T1 &) const':
> ../../src/support/translator.h:78: parse error before `='
> ../../src/support/translator.h: In method `const T1 & Translator<T1,T2>::find(const
>T2 &) const':
> ../../src/support/translator.h:107: parse error before `='
This two parse problems are the culprit in my opinion the rest just stem
from them.
The code in question for this two is similar I'll show one part of it:
Map::const_iterator it =
std::find_if(map.begin(), map.end(),
equal_2nd_in_pair<T1, T2>(second)
);
This actually does a find in a vector of pairs using a custom functor. The
point is that this code compiles ok on quite a few compilers and only here
it barfs on this unparsable stuff.
Map is a type I define later on in a private portion of the template.
map is a variable of type Map, defined in that private portion.
std::find_if is a standard algorithm provided in STL.
equal_2nd_in_pair is my own home-brew functor.
Please help me with it, I have no idea how to go on with this, and I don't
have this problem on my compiler so I can't just experiment it away.
The rest is just the continuation of the error message, left for a full
context in case it is needed.
> ../../src/support/translator.h: In method `const class string &
>Translator<InsetGraphicsParams::Resize,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const InsetGraphicsParams::Resize &) const':
> insetgraphicsParams.C:212: instantiated from here
> ../../src/support/translator.h:83: `it' undeclared (first use this function)
> ../../src/support/translator.h:83: (Each undeclared identifier is reported only once
> ../../src/support/translator.h:83: for each function it appears in.)
> ../../src/support/translator.h:72: warning: unused parameter `const enum
>InsetGraphicsParams::Resize & first'
> ../../src/support/translator.h:86: warning: control reaches end of non-void function
>`Translator<InsetGraphicsParams::Resize,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const InsetGraphicsParams::Resize &) const'
> ../../src/support/translator.h: In method `const class string &
>Translator<InsetGraphicsParams::Origin,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const InsetGraphicsParams::Origin &) const':
> insetgraphicsParams.C:243: instantiated from here
> ../../src/support/translator.h:72: warning: unused parameter `const enum
>InsetGraphicsParams::Origin & first'
> ../../src/support/translator.h:86: warning: control reaches end of non-void function
>`Translator<InsetGraphicsParams::Origin,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const InsetGraphicsParams::Origin &) const'
> ../../src/support/translator.h: In method `const class string &
>Translator<InsetGraphicsParams::DisplayType,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const InsetGraphicsParams::DisplayType &) const':
> insetgraphicsParams.C:305: instantiated from here
> ../../src/support/translator.h:72: warning: unused parameter `const enum
>InsetGraphicsParams::DisplayType & first'
> ../../src/support/translator.h:86: warning: control reaches end of non-void function
>`Translator<InsetGraphicsParams::DisplayType,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const InsetGraphicsParams::DisplayType &) const'
> ../../src/support/translator.h: In method `const enum InsetGraphicsParams::Resize &
>Translator<InsetGraphicsParams::Resize,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const string &) const':
> insetgraphicsParams.C:351: instantiated from here
> ../../src/support/translator.h:91: warning: unused parameter `const class string &
>second'
> ../../src/support/translator.h:115: warning: control reaches end of non-void
>function
>`Translator<InsetGraphicsParams::Resize,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const string &) const'
> ../../src/support/translator.h: In method `const enum InsetGraphicsParams::Origin &
>Translator<InsetGraphicsParams::Origin,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const string &) const':
> insetgraphicsParams.C:378: instantiated from here
> ../../src/support/translator.h:91: warning: unused parameter `const class string &
>second'
> ../../src/support/translator.h:115: warning: control reaches end of non-void
>function
>`Translator<InsetGraphicsParams::Origin,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const string &) const'
> ../../src/support/translator.h: In method `const enum
>InsetGraphicsParams::DisplayType &
>Translator<InsetGraphicsParams::DisplayType,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const string &) const':
> insetgraphicsParams.C:396: instantiated from here
> ../../src/support/translator.h:91: warning: unused parameter `const class string &
>second'
> ../../src/support/translator.h:115: warning: control reaches end of non-void
>function
>`Translator<InsetGraphicsParams::DisplayType,basic_string<char,string_char_traits<char>,__default_alloc_template<true,0>
> > >::find(const string &) const'
>
--
Baruch Even
http://techst02.technion.ac.il/~sbaruch/ (My Site)
http://rpghost.com/jindor/ (My brothers AD&D site)
" Learn to laugh ... it's the path to true love! "
- The Angel in the movie Michael