Boost logo

Boost Users :

From: Berenguer Blasi (bblasi_at_[hidden])
Date: 2006-09-13 06:55:15


Hi,

I've been following this thread and been unable to do the same with:

boost::shared_ptr< map<string,string> > ()

So I can't do:

constructor ( boost::shared_ptr< map<string,string> > varName =
boost::shared_ptr< map<string,string> > () )

The error I get is (why/how do I specify the missing params for map?):

       [cc] /home/bereng/blaseek/src/lib/cppToolkit/DBHelper.h:61: error:
expected a,a or a...a before a>a token
       [cc] /home/bereng/blaseek/src/lib/cppToolkit/DBHelper.h:61: error:
wrong number of template arguments (1, should be 4)
       [cc]
/usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../include/c++/4.1.1/bits/stl_
map.h:92: error: provided for atemplate<class _Key, class _Tp, class
_Compare, class _Alloc> class std::mapa
       [cc] /home/bereng/blaseek/src/lib/cppToolkit/DBHelper.h:61: error:
template argument 1 is invalid
       [cc] /home/bereng/blaseek/src/lib/cppToolkit/DBHelper.h:61: error:
default argument missing for parameter 2 of
aboost::shared_ptr<cppToolkit::ResultSet>
cppToolkit::DBHelper::findObject(boost::shared_ptr<std::map<std::basic_strin
g<char, std::char_traits<char>, std::allocator<char> >,
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
std::less<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >
>, std::string)a

Thanks a lot in advance.

-----Mensaje original-----
De: boost-users-bounces_at_[hidden]
[mailto:boost-users-bounces_at_[hidden]]En nombre de Scott Amort
Enviado el: lunes, 14 de agosto de 2006 1:09
Para: boost-users_at_[hidden]
Asunto: Re: [Boost-users] assign shared_ptr to 0 in initialization list

Hi Scott,

Thanks for the quick reply!

On Sun, 2006-08-13 at 18:11 -0400, me22 wrote:
> Instead of
> > if (writer_.get() == 0) { /* create default error writer */ }
> Why not just use
> if ( !writer_ ) { /* create default error writer */ }
> instead? This would work with ordinary pointers too.

Thanks, that is clearer!

> > What is the equivalent to:
> >
> > Parser testParser(0);
> >
> Parser testParser( ErrorWriterPtr() ); // would work
>
> I'd be tempted instead to replace the constructor definition with
> Parser(ErrorWriterPtr writer = ErrorWritePtr())
> : writer_(writer)
> {
> }
> however, to be able to just say
> Parser testParser;
> if you don't want to specify the writer.

Perfect! Thanks again.

Best,
Scott

_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net