Add const modifier to handle::cast.

This commit is contained in:
Tomasz Miąsko 2015-12-26 19:01:28 +01:00
parent dd57a34e2d
commit cc39b2f37f
3 changed files with 4 additions and 4 deletions

View File

@ -118,7 +118,7 @@ Without reference counting
Return a string representation of the object. This is analogous to Return a string representation of the object. This is analogous to
the ``str()`` function in Python. the ``str()`` function in Python.
.. function:: template <typename T> T handle::cast() .. function:: template <typename T> T handle::cast() const
Attempt to cast the Python object into the given C++ type. A Attempt to cast the Python object into the given C++ type. A
:class:`cast_error` will be throw upon failure. :class:`cast_error` will be throw upon failure.

View File

@ -594,8 +594,8 @@ template <typename T> inline object cast(const T &value, return_value_policy pol
return object(detail::type_caster<typename detail::decay<T>::type>::cast(value, policy, parent), false); return object(detail::type_caster<typename detail::decay<T>::type>::cast(value, policy, parent), false);
} }
template <typename T> inline T handle::cast() { return pybind11::cast<T>(m_ptr); } template <typename T> inline T handle::cast() const { return pybind11::cast<T>(m_ptr); }
template <> inline void handle::cast() { return; } template <> inline void handle::cast() const { return; }
template <typename... Args> inline object handle::call(Args&&... args_) { template <typename... Args> inline object handle::call(Args&&... args_) {
const size_t size = sizeof...(Args); const size_t size = sizeof...(Args);

View File

@ -42,7 +42,7 @@ public:
inline detail::accessor attr(handle key); inline detail::accessor attr(handle key);
inline detail::accessor attr(const char *key); inline detail::accessor attr(const char *key);
inline pybind11::str str() const; inline pybind11::str str() const;
template <typename T> T cast(); template <typename T> T cast() const;
template <typename ... Args> object call(Args&&... args_); template <typename ... Args> object call(Args&&... args_);
operator bool() const { return m_ptr != nullptr; } operator bool() const { return m_ptr != nullptr; }
bool check() const { return m_ptr != nullptr; } bool check() const { return m_ptr != nullptr; }