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

Workaround VC6 bug

[SVN r14975]
This commit is contained in:
Dave Abrahams
2002-08-19 22:19:50 +00:00
parent a5d53d1ac8
commit 3092e07281
3 changed files with 14 additions and 14 deletions

View File

@@ -23,9 +23,9 @@ namespace detail
;
}
template <std::size_t owner_arg = 1, class Base = default_call_policies>
template <std::size_t owner_arg = 1, class BasePolicy_ = default_call_policies>
struct return_internal_reference
: with_custodian_and_ward_postcall<0, owner_arg, Base>
: with_custodian_and_ward_postcall<0, owner_arg, BasePolicy_>
{
private:
BOOST_STATIC_CONSTANT(bool, legal = owner_arg > 0);

View File

@@ -9,8 +9,8 @@
namespace boost { namespace python {
template <class ResultConverterGenerator, class Base = default_call_policies>
struct return_value_policy : Base
template <class ResultConverterGenerator, class BasePolicy_ = default_call_policies>
struct return_value_policy : BasePolicy_
{
typedef ResultConverterGenerator result_converter;
};

View File

@@ -11,14 +11,14 @@
namespace boost { namespace python {
template <std::size_t custodian, std::size_t ward, class Base = default_call_policies>
struct with_custodian_and_ward : Base
template <std::size_t custodian, std::size_t ward, class BasePolicy_ = default_call_policies>
struct with_custodian_and_ward : BasePolicy_
{
static bool precall(PyObject* args);
};
template <std::size_t custodian, std::size_t ward, class Base = default_call_policies>
struct with_custodian_and_ward_postcall : Base
template <std::size_t custodian, std::size_t ward, class BasePolicy_ = default_call_policies>
struct with_custodian_and_ward_postcall : BasePolicy_
{
static PyObject* postcall(PyObject* args, PyObject* result);
};
@@ -26,8 +26,8 @@ struct with_custodian_and_ward_postcall : Base
//
// implementations
//
template <std::size_t custodian, std::size_t ward, class Base>
bool with_custodian_and_ward<custodian,ward,Base>::precall(PyObject* args_)
template <std::size_t custodian, std::size_t ward, class BasePolicy_>
bool with_custodian_and_ward<custodian,ward,BasePolicy_>::precall(PyObject* args_)
{
BOOST_STATIC_ASSERT(custodian != ward);
BOOST_STATIC_ASSERT(custodian > 0);
@@ -42,7 +42,7 @@ bool with_custodian_and_ward<custodian,ward,Base>::precall(PyObject* args_)
if (life_support == 0)
return false;
bool result = Base::precall(args_);
bool result = BasePolicy_::precall(args_);
if (!result)
Py_XDECREF(life_support);
@@ -50,8 +50,8 @@ bool with_custodian_and_ward<custodian,ward,Base>::precall(PyObject* args_)
return result;
}
template <std::size_t custodian, std::size_t ward, class Base>
PyObject* with_custodian_and_ward_postcall<custodian,ward,Base>::postcall(PyObject* args_, PyObject* result)
template <std::size_t custodian, std::size_t ward, class BasePolicy_>
PyObject* with_custodian_and_ward_postcall<custodian,ward,BasePolicy_>::postcall(PyObject* args_, PyObject* result)
{
BOOST_STATIC_ASSERT(custodian != ward);
@@ -61,7 +61,7 @@ PyObject* with_custodian_and_ward_postcall<custodian,ward,Base>::postcall(PyObje
PyObject* nurse = custodian > 0 ? PyTuple_GetItem(args_, custodian - 1) : result;
if (nurse == 0) return 0;
result = Base::postcall(args_, result);
result = BasePolicy_::postcall(args_, result);
if (result == 0)
return 0;