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" );
[snip]
>
>     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
not
> 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;

  GlobalParameter input_socket(12345);
  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
that
> 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
believe otherwise?

Thanks,
Eric



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to