Jason House wrote:
>   If I understand correctly, each file that uses SomeClass<MyParam>
> will compile in its own version of SomeClass.  Will a compiler remove
> the duplicate versions and leave only one copy of SomeClass<MyParam>?

    I believe that would be a Quality of Implementation issue.  A compiler
would merge them if it were to merge multiple copies of any templated class.

>
> Another quesion:
>
> if
> template <const char *S> SomeClass { ...};
> extern const char* MyParam_1 = "MyParam";
> extern const char* MyParam_2 = "MyParam";
>
> then would
> typeof(SomeClass<MyParam_1>) == typeof(SomeClass<MyParam_2>)
> be true?

    I guess the correct answer here is "Not Necessarily".   Remember that
the template is using the char*, not the text literal, as it's parameter.  A
compiler may pool the identical text literals and have both MyParam_1 and
MyParam_2 point to the same address (inwhich case that expresion would be
true), but it's not required to.

--
Truth,
James Curran
www.noveltheory.com (personal)
www.njtheater.com (professional)



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

Reply via email to