David Abrahams <[EMAIL PROTECTED]> writes:

| Alexander Terekhov <[EMAIL PROTECTED]> writes:
| 
| >> > David Abrahams <[EMAIL PROTECTED]> writes:
| >> >
| >> > | I disagree with your conclusion.  As I've said elsewhere, &k can be a
| >> > | compile-time constant in the same way that &X::k is a compile-time
| >> > | constant.
| >> >
| >> > Certainly, you've said that.  But that assertion by itself does not
| >> > constitute a proof of the well-foundness of the attempted analogy or
| >> > whether the analogy actually constitutes a proof.
| >> 
| >> It's not intended to be proof in the mathematical sense; I doubt I
| >> have the energy for that ;-), though I think MSVC probably constitutes
| >> an existence proof.
| >
| > Yeah. Indeed: <http://tinyurl.com/673e>
| 
| OK, whatever.  I guess I should've said that you can instantiate a
| template on &k with sensible results.  Whether or not you want to call
| it a constant is another semantic matter.  I'd call it a constant
| which evaluates differently in different threads.  
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

And that isn't just a word-game as your message might imply it.

| Within a single thread the value never changes.

Like in

   template<typename T>
     struct X { };

   int main()
   {
      const int i = 2003;
      X<&i> x;
   }

?

In a given program run, &i won't change.  That is just in single
thread mode.  Let's solve that first.
Extrapolating to a multi-thread mode isn't just changing a word.


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

Reply via email to