diff --git a/.github/workflows/test-ubuntu.yml b/.github/workflows/test-ubuntu.yml
index 41185c0dc..6f94c2d18 100644
--- a/.github/workflows/test-ubuntu.yml
+++ b/.github/workflows/test-ubuntu.yml
@@ -11,16 +11,16 @@ jobs:
matrix:
python: [python, python3]
cxx: [g++, clang++]
- std: [c++98, c++11, c++14, c++17]
+ std: [c++11, c++14, c++17]
include:
# Add the appropriate docker image for each compiler.
# The images from teeks99/boost-python-test already have boost::python
# pre-reqs installed, see:
# https://github.com/teeks99/boost-python-test-docker
- cxx: clang++
- docker-img: teeks99/boost-python-test:clang-12_1.76.0
+ docker-img: teeks99/boost-python-test:clang-21_1.89.0
- cxx: g++
- docker-img: teeks99/boost-python-test:gcc-10_1.76.0
+ docker-img: teeks99/boost-python-test:gcc-15_1.89.0
container:
image: ${{ matrix.docker-img }}
@@ -28,6 +28,10 @@ jobs:
steps:
- uses: actions/checkout@v5
+ - name: setup prerequisites
+ run: |
+ # Warning: this is not necessarily the same Python version as the one configured above !
+ python3 -m pip install -U faber --break-system-packages
- name: build
run: |
${{ matrix.python }} --version
diff --git a/doc/numpy/_templates/layout.html b/doc/numpy/_templates/layout.html
index d85f07514..69e1a868c 100644
--- a/doc/numpy/_templates/layout.html
+++ b/doc/numpy/_templates/layout.html
@@ -90,7 +90,7 @@
 }})
+ alt="C++ Boost" src="{{ pathto('_static/bpl.png', 1) }}" border="0">
|
diff --git a/fabscript b/fabscript
index 8188779fd..5a50615fc 100644
--- a/fabscript
+++ b/fabscript
@@ -16,6 +16,7 @@ from faber.config.try_run import try_run
features += include('include')
features += define('BOOST_ALL_NO_LIB') # disable auto-linking
+features += define('BOOST_NO_AUTO_PTR')
boost_include = options.get_with('boost-include')
if boost_include:
features += include(boost_include)
diff --git a/include/boost/python/detail/is_auto_ptr.hpp b/include/boost/python/detail/is_auto_ptr.hpp
index 3b8198b8d..36affcd21 100644
--- a/include/boost/python/detail/is_auto_ptr.hpp
+++ b/include/boost/python/detail/is_auto_ptr.hpp
@@ -8,6 +8,8 @@
# ifndef BOOST_NO_AUTO_PTR
# include
# include
+# else
+# include
# endif
namespace boost { namespace python { namespace detail {
diff --git a/test/back_reference.cpp b/test/back_reference.cpp
index 266ed2912..11e47b332 100644
--- a/test/back_reference.cpp
+++ b/test/back_reference.cpp
@@ -99,7 +99,7 @@ BOOST_PYTHON_MODULE(back_reference_ext)
.def("set", &Y::set)
;
- class_ >("Z", init())
+ class_ >("Z", init())
.def("value", &Z::value)
.def("set", &Z::set)
;
diff --git a/test/copy_ctor_mutates_rhs.cpp b/test/copy_ctor_mutates_rhs.cpp
index 41eac495e..be52c4f32 100644
--- a/test/copy_ctor_mutates_rhs.cpp
+++ b/test/copy_ctor_mutates_rhs.cpp
@@ -9,14 +9,13 @@
struct foo
{
- operator std::auto_ptr&() const;
+ operator std::shared_ptr&() const;
};
int main()
{
using namespace boost::python::detail;
BOOST_STATIC_ASSERT(!copy_ctor_mutates_rhs::value);
- BOOST_STATIC_ASSERT(copy_ctor_mutates_rhs >::value);
BOOST_STATIC_ASSERT(!copy_ctor_mutates_rhs::value);
BOOST_STATIC_ASSERT(!copy_ctor_mutates_rhs::value);
return 0;
diff --git a/test/fabscript b/test/fabscript
index d4d7ead83..a002fb2bf 100644
--- a/test/fabscript
+++ b/test/fabscript
@@ -118,10 +118,10 @@ for t in [('injected',),
tests.append(extension_test('shared_ptr',
condition=set.define.contains('HAS_CXX11')))
-tests.append(extension_test('polymorphism2_auto_ptr',
- condition=set.define.contains('HAS_CXX11').not_()))
-tests.append(extension_test('auto_ptr',
- condition=set.define.contains('HAS_CXX11')))
+#tests.append(extension_test('polymorphism2_auto_ptr',
+# condition=set.define.contains('HAS_CXX11').not_()))
+#tests.append(extension_test('auto_ptr',
+# condition=set.define.contains('HAS_CXX11')))
import_ = binary('import_', ['import_.cpp', src.bpl], features=features|python_libs)
if platform.os == 'Windows':
diff --git a/test/injected.cpp b/test/injected.cpp
index 73e1e14ba..82db3e82e 100644
--- a/test/injected.cpp
+++ b/test/injected.cpp
@@ -17,7 +17,7 @@ typedef test_class<> X;
X* empty() { return new X(1000); }
-std::auto_ptr sum(int a, int b) { return std::auto_ptr(new X(a+b)); }
+std::shared_ptr sum(int a, int b) { return std::shared_ptr(new X(a+b)); }
boost::shared_ptr product(int a, int b, int c)
{
diff --git a/test/operators_wrapper.cpp b/test/operators_wrapper.cpp
index 12f30048d..e62ead16f 100644
--- a/test/operators_wrapper.cpp
+++ b/test/operators_wrapper.cpp
@@ -36,7 +36,7 @@ BOOST_PYTHON_MODULE( operators_wrapper_ext )
;
scope().attr("v") = vector();
- std::auto_ptr dp(new dvector);
- register_ptr_to_python< std::auto_ptr >();
+ std::shared_ptr dp(new dvector);
+ register_ptr_to_python< std::shared_ptr >();
scope().attr("d") = dp;
}
diff --git a/test/select_holder.cpp b/test/select_holder.cpp
index 8650bd06a..77aac6786 100644
--- a/test/select_holder.cpp
+++ b/test/select_holder.cpp
@@ -62,14 +62,14 @@ int test_main(int, char * [])
assert_holder >();
- assert_holder
- ,pointer_holder,Base> >();
+ assert_holder
+ ,pointer_holder,Base> >();
- assert_holder
- ,pointer_holder_back_reference,Base> >();
+ assert_holder
+ ,pointer_holder_back_reference,Base> >();
- assert_holder
- ,pointer_holder_back_reference,BR> > ();
+ assert_holder
+ ,pointer_holder_back_reference,BR> > ();
return 0;
}
diff --git a/test/upcast.cpp b/test/upcast.cpp
index 255429f16..e00590041 100644
--- a/test/upcast.cpp
+++ b/test/upcast.cpp
@@ -13,7 +13,7 @@ int main()
{
PyTypeObject o;
Y y;
- BOOST_TEST(&Py_REFCNT(boost::python::upcast(&o)) == &Py_REFCNT(&o));
- BOOST_TEST(&Py_REFCNT(boost::python::upcast(&y)) == &Py_REFCNT(&y));
+ BOOST_TEST(boost::python::upcast(&o) == reinterpret_cast(&o));
+ BOOST_TEST(boost::python::upcast(&y) == &y);
return boost::report_errors();
}
diff --git a/test/wrapper_held_type.cpp b/test/wrapper_held_type.cpp
index e99422796..ef494924b 100644
--- a/test/wrapper_held_type.cpp
+++ b/test/wrapper_held_type.cpp
@@ -20,12 +20,12 @@ struct data
}
};
-std::auto_ptr create_data()
+std::shared_ptr create_data()
{
- return std::auto_ptr( new data );
+ return std::shared_ptr( new data );
}
-void do_nothing( std::auto_ptr& ){}
+void do_nothing( std::shared_ptr& ){}
namespace bp = boost::python;
@@ -59,7 +59,7 @@ struct data_wrapper : data, bp::wrapper< data >
BOOST_PYTHON_MODULE(wrapper_held_type_ext)
{
- bp::class_< data_wrapper, std::auto_ptr< data > >( "data" )
+ bp::class_< data_wrapper, std::shared_ptr< data > >( "data" )
.def( "id", &data::id, &::data_wrapper::default_id );
bp::def( "do_nothing", &do_nothing );
|