x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
args.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\python\args.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 KEYWORDS_DWA2002323_HPP # define KEYWORDS_DWA2002323_HPP # include
# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
namespace boost { namespace python { typedef detail::keywords<1> arg; typedef arg arg_; // gcc 2.96 workaround namespace detail { template
struct keywords_base { BOOST_STATIC_CONSTANT(std::size_t, size = nkeywords); keyword_range range() const { return keyword_range(elements, elements + nkeywords); } keyword elements[nkeywords]; keywords
operator,(python::arg const &k) const; keywords
operator,(char const *name) const; }; template
struct keywords : keywords_base
{ }; template <> struct keywords<1> : keywords_base<1> { explicit keywords(char const *name) { elements[0].name = name; } template
python::arg& operator=(T const& value) { object z(value); elements[0].default_value = handle<>(python::borrowed(object(value).ptr())); return *this; } operator detail::keyword const&() const { return elements[0]; } }; template
inline keywords
keywords_base
::operator,(python::arg const &k) const { keywords
const& l = *static_cast
const*>(this); python::detail::keywords
res; std::copy(l.elements, l.elements+nkeywords, res.elements); res.elements[nkeywords] = k.elements[0]; return res; } template
inline keywords
keywords_base
::operator,(char const *name) const { return this->operator,(python::arg(name)); } # ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION template
struct is_keywords { BOOST_STATIC_CONSTANT(bool, value = false); }; template
struct is_keywords
> { BOOST_STATIC_CONSTANT(bool, value = true); }; template
struct is_reference_to_keywords { BOOST_STATIC_CONSTANT(bool, is_ref = is_reference
::value); typedef typename remove_reference
::type deref; typedef typename remove_cv
::type key_t; BOOST_STATIC_CONSTANT(bool, is_key = is_keywords
::value); BOOST_STATIC_CONSTANT(bool, value = (is_ref & is_key)); typedef mpl::bool_
type; BOOST_PYTHON_MPL_LAMBDA_SUPPORT(1,is_reference_to_keywords,(T)) }; # else typedef char (&yes_keywords_t)[1]; typedef char (&no_keywords_t)[2]; no_keywords_t is_keywords_test(...); template
yes_keywords_t is_keywords_test(void (*)(keywords
&)); template
yes_keywords_t is_keywords_test(void (*)(keywords
const&)); template
class is_reference_to_keywords { public: BOOST_STATIC_CONSTANT( bool, value = ( sizeof(detail::is_keywords_test( (void (*)(T))0 )) == sizeof(detail::yes_keywords_t))); typedef mpl::bool_
type; BOOST_PYTHON_MPL_LAMBDA_SUPPORT(1,is_reference_to_keywords,(T)) }; # endif } inline detail::keywords<1> args(char const* name) { return detail::keywords<1>(name); } # define BOOST_PYTHON_ASSIGN_NAME(z, n, _) result.elements[n].name = name##n; # define BOOST_PP_LOCAL_MACRO(n) \ inline detail::keywords
args(BOOST_PP_ENUM_PARAMS_Z(1, n, char const* name)) \ { \ detail::keywords
result; \ BOOST_PP_REPEAT_1(n, BOOST_PYTHON_ASSIGN_NAME, _) \ return result; \ } # define BOOST_PP_LOCAL_LIMITS (2, BOOST_PYTHON_MAX_ARITY) # include BOOST_PP_LOCAL_ITERATE() }} // namespace boost::python # endif // KEYWORDS_DWA2002323_HPP
args.hpp
网页地址
文件地址
上一页
2/85
下一页
下载
( 5 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.