"Peter Dimov" <[EMAIL PROTECTED]> writes:

> Looks like a no-brainer, &k can't be a compile-time constant if k is
> thread-local.
>
> 1.
>
> void f()
> {
>     C<&k> ck;
> }
>
> 2.
>
> void f()
> {
>     typedef C<&k> ck_type;
>     ck_type ck;
> }
>
> 3.
>
> typedef C<&k> ck_type;
>
> void f()
> {
>     ck_type ck;
> }
>
> The type of ck cannot depend on the thread that is executing f.

It doesn't have to.  When used as a template parameter, an address
could refer to something more like a member function pointer, i.e. an
offset in the thread's table of globals.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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

Reply via email to