[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