From: Eric Friedman (ebf_at_[hidden])
Date: 2003-04-04 18:17:47
Gennadiy Rozental wrote:
> > > So what I want is
> > >
> > > typedef boost::variant<int const,std::string const> GlobalParameter;
> > >
> > > GlobalParameter input_socket( 12345 ); // localhost::12345
> > > GlobalParameter output_socket( "MultiplexorSocket" );
> What if variant is the member of the class template, and we want to
> support const type arguments? Why not implement const support if it does
> cost us too much and you agree that there exist possible usage cases?
I argue that top-level const type arguments are meaningless in the context
of variant. Given the example you provide:
typedef boost::variant<int const, std::string const> GlobalParameter;
input_socket = 54321; // no way to prevent this!!
If there is no way to prevent the code above, then I see the allowance of
top-level const types as misleading, at best. Please help me understand your
view if you continue to disagree.
> But I feel more relaxed on this point now. Though I believe if variant
> will end up without const type support it should be clearly documented
> there is a way to implement variant constants in many cases.
We can put it in the docs, but it seems straightforward that a const variant
would, in fact, not allow modification. What reason would lead someone to
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk