boostorg / boostorg/math

Issues with building Boost.Math into a standard library implementation

Ouverte
#1,186 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C++
Étoiles
374
Forks
264
Merge moyen
1 j 23 h
PR mergées (30 j)
17

Description

Currently MSVC STL builds Boost.Math into its static library, which cause the static library contains non-_Uglified linking symbols and causes non-conforming linking behavior. See microsoft/STL#362.

I'm trying to resolve this in Boost.Math by adding the `BOOST_MATH_NAMESPACE` macro
```C++
#ifndef BOOST_MATH_NAMESPACE
#define BOOST_MATH_NAMESPACE math
#endif
```
and then replace every occurrence of `math` which is a namespace with `BOOST_MATH_NAMESPACE`.

With the changes above, MSVC STL's [`special_math.cpp`](https://github.com/microsoft/STL/blob/62205ab155d093e71dd9588a78f02c5396c3c14b/stl/src/special_math.cpp) can define `BOOST_MATH_NAMESPACE` as `_Math` (or some other _Uglified identifier, e.g. `__math__`) before including `` and then use `::boost::BOOST_MATH_NAMESPACE::*` to get rid of non-_Uglified symbols.

But the changes need to touch 500+ files in Boost.Math and make maintenance a bit harder (every namespace `math` should be spelt as `BOOST_MATH_NAMESPACE` later). Not sure whether this approach is OK.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.