📄 object_items.hpp
字号:
// Copyright David Abrahams 2002.// Distributed under the Boost Software License, Version 1.0. (See// accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)#ifndef OBJECT_ITEMS_DWA2002615_HPP# define OBJECT_ITEMS_DWA2002615_HPP# include <boost/python/detail/prefix.hpp># include <boost/python/proxy.hpp># include <boost/python/object_core.hpp># include <boost/python/object_protocol.hpp>namespace boost { namespace python { namespace api {struct const_item_policies{ typedef object key_type; static object get(object const& target, object const& key);}; struct item_policies : const_item_policies{ static object const& set(object const& target, object const& key, object const& value); static void del(object const& target, object const& key);};//// implementation//template <class U>inline object_itemobject_operators<U>::operator[](object_cref key){ object_cref2 x = *static_cast<U*>(this); return object_item(x, key);}template <class U>inline const_object_itemobject_operators<U>::operator[](object_cref key) const{ object_cref2 x = *static_cast<U const*>(this); return const_object_item(x, key);}# if !defined(BOOST_MSVC) || BOOST_MSVC > 1300template <class U>template <class T>inline const_object_itemobject_operators<U>::operator[](T const& key) const{ return (*this)[object(key)];}template <class U>template <class T>inline object_itemobject_operators<U>::operator[](T const& key){ return (*this)[object(key)];}# endif inline object const_item_policies::get(object const& target, object const& key){ return getitem(target, key);}inline object const& item_policies::set( object const& target , object const& key , object const& value){ setitem(target, key, value); return value;}inline void item_policies::del( object const& target , object const& key){ delitem(target, key);}}}} // namespace boost::python::api#endif // OBJECT_ITEMS_DWA2002615_HPP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -