|
Boost : |
From: Gennadiy E. Rozental (rogeeff_at_[hidden])
Date: 2001-08-22 15:00:58
Hi!
I got it!!!
Reason is that I turned on following flags: -g +d
I wanted to prevent expanding inline functions for debuging. Looks
like Sun workshop has a problem with it.
Gennadiy.
--- In boost_at_y..., Douglas Gregor <gregod_at_c...> wrote:
> Hello Gennadiy,
> I'm not sure I quite understand the error message. It appears
that the
> linker is not finding the constructors for the boost::function
objects. My
> inclination is to tell you to ignore the testcase failure and not
to use
> default arguments.
> This is somewhat of a grey area, and I can't tell you with
confidence that
> defarg_test is standards-conforming. The problem boils down to:
>
> template<typename F>
> void foo(F f) { f(1); }
>
> void bar(int i, int j = 5, int k = 7);
> void wibble(int i, int j, int k);
>
> foo(&bar); // #1
> foo(&wibble); // #2
>
> #1 causes foo to be instantiated with F=void (*)(int, int, int),
even though
> it is called with only one argument. #2 has the same type (default
arguments
> are not part of the type), so the instantiation of foo for #1 is
the same for
> #2, even though wibble(1) is not well-formed. I have yet to see a
compiler
> catch this error. Also note that with every compiler I tried, if
wibble gets
> default arguments for j and k, the wrong values are used.
>
> My advice is to not rely on the use of default arguments.
They appear to be
> unpredictable on many (good) compilers.
>
> Doug
>
> On Wednesday 22 August 2001 01:01, you wrote:
> > Hi,
> >
> > Trying to compile function: defarg_test on Sun with SunWorkshop 6
u.1
> >
> > I am sure I was able to compile it week ago. But now I am getting
> > this weird error during linking:
> >
> > Undefined first referenced
> > symbol in file
> >
boost::function0<int,boost::empty_function_policy,boost::empty_functio
> > n_mixin,_STL::allocator<boost::function_base> >::function0<int(*)
> > (int,int,int)>#Nvariant 1(const
> > __type_4&) ./build_dev/o.sun/defarg_test.o
> >
boost::function2<int,int,int,boost::empty_function_policy,boost::empty
> > _function_mixin,_STL::allocator<boost::function_base>
>::function2<int
> > (*)(int,int,int)>#Nvariant 1(const
> > __type_6&) ./build_dev/o.sun/defarg_test.o
> >
boost::function1<int,int,boost::empty_function_policy,boost::empty_fun
> > ction_mixin,_STL::allocator<boost::function_base> >::function1<int
(*)
> > (int,int,int)>#Nvariant 1(const
> > __type_5&) ./build_dev/o.sun/defarg_test.o
> > ld: fatal: Symbol referencing errors. No output written to
> > build_dev/d.sun/defarg_test
> >
> > I am fighting with it second day.
> >
> > Any ideas?
> >
> > Thank you,
> >
> > Gennadiy.
> >
> >
> >
> >
> > Info: http://www.boost.org Unsubscribe:
> > <mailto:boost-unsubscribe_at_y...>
> >
> > Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk