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

Richard B. Kreckel git at ginac.de
Thu Feb 17 00:08:10 CET 2022


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GiNaC -- a C++ library for symbolic computations".

The branch, master has been updated
       via  b98ef824450d2897f5ea8f5254d614e6f8148d33 (commit)
      from  1d3bdf85b4343f29a73a47481e4adc0eff0daff8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b98ef824450d2897f5ea8f5254d614e6f8148d33
Author: Jan Rheinländer <jrheinlaender at gmx.de>
Date:   Wed Feb 16 23:57:36 2022 +0100

    Work around a compiler bug on MSVC.
    
    The two 'reg_info' declarations introduced in f271f67d2f turned out
    to confuse MSVC: It thinks that these declarations are definitions
    and then complains about a missing default ctor (error C2512) and
    about duplicate definitions later in the .cpp files (error C2766).
    
    But the standard says in [temp.expl.spec] §13:
    An explicit specialization of a static data member of a template or
    an explicit specialization of a static  data member template is a
    definition if the declaration includes an initializer; otherwise, it
    is a declaration. [Note: The definition of a static data member of a
    template that requires default-initialization must use a braced-init-
    list:
        template<> X Q<int>::x;     // declaration
        template<> X Q<int>::x ();  // error: declares a function
        template<> X Q<int>::x { }; // definition
    --end note]
    There is no initializer at lst.h:35 and at exprseq.h:35. Hence, this
    is merely a declaration and the compiler's error message is wrong.
    Let's work around by #ifndef'ing the two lines for silly MSVC.

-----------------------------------------------------------------------

Summary of changes:
 ginac/exprseq.h | 2 ++
 ginac/lst.h     | 2 ++
 2 files changed, 4 insertions(+)


hooks/post-receive
--
GiNaC -- a C++ library for symbolic computations


More information about the GiNaC-devel mailing list