[GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-709-gf271f67d

Alexey Sheplyakov asheplyakov at yandex.ru
Mon Feb 8 12:04:34 CET 2021


Richard,

On 2/3/21 6:50 PM, Richard B. Kreckel via GiNaC-devel wrote:

> commit f271f67d2fc798079326e450bc0e53eb80fb2e96
> Author: Richard Kreckel <kreckel at ginac.de>
> Date:   Wed Feb 3 14:40:49 2021 +0100
> 
>      Avoid "instantiation of variable 'reg_info' required..." warning.
>      
>      With -Wundefined-var-template (on by default), CLang++ warns that
>      no definition for the static 'reg_info' member variable is available.
> 

The patch confuses me a bit.

Firstly, the compiler has complained about missing instantiation,
and you've provided (an explicit) specialization instead. Yet
the compiler seems to be happy.

Secondly this

/** Definition of container::reg_info for exprseq. */
template<> registered_class_info exprseq::reg_info;

is a declaration, not definition. According to 14.7.3.13
"An explicit specialization of a static data member of a template is
a definition if the declaration includes an initializer; otherwise,
it's a declaration."

Best regards,
    Alexey


More information about the GiNaC-devel mailing list