2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-21 17:12:22 +00:00

Changes to support MSVC 6.0.

[SVN r22430]
This commit is contained in:
Jonathan Brandmeyer
2004-03-04 16:42:56 +00:00
parent 115f9f0644
commit 476cba228d
3 changed files with 20 additions and 10 deletions

View File

@@ -18,22 +18,26 @@ namespace boost { namespace python {
class slice : public object
{
private:
// Helper function to work around bugs in MSVC 6
BOOST_PYTHON_DECL
static object new_slice(PyObject*, PyObject*, PyObject*);
public:
// Equivalent to slice(::)
BOOST_PYTHON_DECL
slice();
// Each argument must be int, slice_nil, or implicitly convertable to int
template<typename Integer1, typename Integer2>
slice( Integer1 start, Integer2 stop)
: object( boost::python::detail::new_reference(
PySlice_New( object(start).ptr(), object(stop).ptr(), NULL)))
: object( new_slice( object(start).ptr(), object(stop).ptr(), NULL))
{}
template<typename Integer1, typename Integer2, typename Integer3>
slice( Integer1 start, Integer2 stop, Integer3 stride)
: object( boost::python::detail::new_reference(
PySlice_New( object(start).ptr(), object(stop).ptr(),
object(stride).ptr())))
: object(
new_slice( object(start).ptr(), object(stop).ptr(), object(stride).ptr()))
{}
// Get the Python objects associated with the slice. In principle, these

View File

@@ -8,6 +8,12 @@
namespace boost { namespace python {
object
slice::new_slice(PyObject* start, PyObject* stop, PyObject* step)
{
return object(detail::new_reference( PySlice_New(start, stop, step)));
}
slice::slice()
: object( boost::python::detail::new_reference(
PySlice_New( NULL, NULL, NULL)))

View File

@@ -37,17 +37,17 @@ bool check_string_rich_slice()
bool check_numeric_array_rich_slice()
{
using numeric::array;
object original = array( make_tuple( make_tuple( 11, 12, 13, 14),
array original = array( make_tuple( make_tuple( 11, 12, 13, 14),
make_tuple( 21, 22, 23, 24),
make_tuple( 31, 32, 33, 34),
make_tuple( 41, 42, 43, 44)));
object upper_left_quadrant = array( make_tuple( make_tuple( 11, 12),
array upper_left_quadrant = array( make_tuple( make_tuple( 11, 12),
make_tuple( 21, 22)));
object odd_cells = array( make_tuple( make_tuple( 11, 13),
array odd_cells = array( make_tuple( make_tuple( 11, 13),
make_tuple( 31, 33)));
object even_cells = array( make_tuple( make_tuple( 22, 24),
array even_cells = array( make_tuple( make_tuple( 22, 24),
make_tuple( 42, 44)));
object lower_right_quadrant_reversed = array(
array lower_right_quadrant_reversed = array(
make_tuple( make_tuple(44, 43),
make_tuple(34, 33)));