-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible compatibility issue with MPFR 4.2.1 #24
Comments
Recently introduced C++23 features seem to cause these errors. Please compile the code in C++11 or similar mode. |
I am using #include <iostream>
#include <complex>
#include <gmpxx.h>
#include <mpreal.h>
using namespace mpfr;
int main(int argc, char * argv[]) {
// Set precision
mpreal::set_default_prec(128);
// define two complex numbers
std::complex<mpreal> a {1.0, 0.0};
std::complex<mpreal> b {0.0, 1.0};
// divide a by b
std::complex<mpreal> c;
c = a / b;
std::cout << "a / b = " << c;
return 0;
} The corresponding CMakeLists.txt file is: cmake_minimum_required(VERSION 3.11)
project(test_mpreal)
set(CMAKE_CXX_STANDARD 11)
#set (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
find_package(GMP REQUIRED)
find_package(MPFR REQUIRED)
INCLUDE_DIRECTORIES(
"${GMP_INCLUDES}"
"${CMAKE_SOURCE_DIR}"
)
add_executable(test_mpreal main.cpp)
target_link_libraries(test_mpreal ${MPFR_LIBRARIES} ${GMPXX_LIBRARIES} ${GMP_LIBRARIES})
target_link_libraries(test_mpreal ${MPFR_LIBRARIES} ${GMPXX_LIBRARIES} ${GMP_LIBRARIES}) The output from cmake is: -- The C compiler identification is AppleClang 15.0.0.15000040
-- The CXX compiler identification is AppleClang 15.0.0.15000040
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found GMP: /usr/local/include
-- Found MPFR: /usr/local/include (Required is at least version "1.0.0")
-- GMPXX_INCLUDES=/usr/local/include
-- Configuring done (2.5s)
-- Generating done (0.0s) Library versions:
Perhaps I'm missing something obvious here? The code compiled with older MPFR libraries, but does not do so after recent updates. |
I (jfyi my company bought mpreal license) had a similar problem but my issue was my mpreal revision was before 269a037 . After updating I don't see such error. I wonder if gauravharsha's mpreal revision was old. |
This rudimentary code uses mpreal.h and MPFR libraries for C++. When compiling with
it works perfectly fine.
But after updating my libraries to
the compiler raises multiple errors related to, I believe, method inheritance.
For instance, the Clang 15 and MPFR-4.2.1 combo raises some of the following errors (among other similar ones):
It is not unlikely that there are problems with the code itself, but the sudden breakdown of the attached code after updating the mpfr library makes me think there could be some incompatibilities introduced in the update. I would appreciate any valuable feedback.
PS: The link appears to be broken. I will instead try to share a simple example.
The text was updated successfully, but these errors were encountered: