object_attributes.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 69 行

HPP
69
字号
// 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_ATTRIBUTES_DWA2002615_HPP# define OBJECT_ATTRIBUTES_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_attribute_policies{    typedef char const* key_type;    static object get(object const& target, char const* key);};  struct attribute_policies : const_attribute_policies{    static object const& set(object const& target, char const* key, object const& value);    static void del(object const&target, char const* key);};//// implementation//template <class U>inline object_attribute object_operators<U>::attr(char const* name){    object_cref2 x = *static_cast<U*>(this);    return object_attribute(x, name);}template <class U>inline const_object_attribute object_operators<U>::attr(char const* name) const{    object_cref2 x = *static_cast<U const*>(this);    return const_object_attribute(x, name);}inline object const_attribute_policies::get(object const& target, char const* key){    return python::getattr(target, key);}inline object const& attribute_policies::set(    object const& target    , char const* key    , object const& value){    python::setattr(target, key, value);    return value;}inline void attribute_policies::del(    object const& target    , char const* key){    python::delattr(target, key);}}}} // namespace boost::python::api#endif // OBJECT_ATTRIBUTES_DWA2002615_HPP

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?