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