boostorg / boostorg/core

Including Boost Python libraries produces C2039 compiler error

Open
#130 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
156
Forks
116
PR merge metrics
No merged PRs in 30d

Description

I have built Boost_1.76 with the following configurations.

```
Compiler: MSVC 143
Build Tools: bootstrap.bat, b2 engine
Python Version: 3.7
b2 Command: b2 --build-dir=build/x64 address-model=64 threading=multi --build-type=complete --stagedir=./stage/x64 -j 12
```

```cpp
// Conversion.hpp
#include // import produces C2039
#include // import produces C2039
#include
#include
```

```cpp
// Conversion.cpp
#include "Conversion.hpp" // importing the header file produces the compiler error
```

I am compiling the project with the following specs.

```
Compiler: MSVC cl.exe
C++ Standard: ISO C++17
Platform Toolset: Visual Studio 2022 (v143)
```

The compilation generates the following error.

```
C2039: '_copysign' is not a member of 'std'
File: boost_1_76_python37\boost\core\cmath.hpp
```

I looked at `python.hpp `and `numpy.hpp` and could only find a reference to `std::cmath` inside `boost\python\detail\wrap_python.py`, which is used over `boost::core::cmath`. I checked the `std::cmath` header and `copysign` is neither declared nor defined. How do I make sure that my Boost library uses the `copysign` in `boost::core::cmath`?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.