本文整理汇总了C++中ndt::type::unchecked_get_builtin_type_id方法的典型用法代码示例。如果您正苦于以下问题:C++ type::unchecked_get_builtin_type_id方法的具体用法?C++ type::unchecked_get_builtin_type_id怎么用?C++ type::unchecked_get_builtin_type_id使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ndt::type
的用法示例。
在下文中一共展示了type::unchecked_get_builtin_type_id方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DYND_UNUSED
intptr_t nd::copy_ck::instantiate(
char *DYND_UNUSED(static_data), size_t DYND_UNUSED(data_size),
char *DYND_UNUSED(data), void *ckb, intptr_t ckb_offset,
const ndt::type &dst_tp, const char *dst_arrmeta,
intptr_t DYND_UNUSED(nsrc), const ndt::type *src_tp,
const char *const *src_arrmeta, kernel_request_t kernreq,
const eval::eval_context *ectx, intptr_t DYND_UNUSED(nkwd),
const nd::array *DYND_UNUSED(kwds),
const std::map<std::string, ndt::type> &DYND_UNUSED(tp_vars))
{
if (dst_tp.is_builtin()) {
if (src_tp[0].is_builtin()) {
if (dst_tp.extended() == src_tp[0].extended()) {
return make_pod_typed_data_assignment_kernel(
ckb, ckb_offset, dynd::ndt::detail::builtin_data_sizes
[dst_tp.unchecked_get_builtin_type_id()],
dynd::ndt::detail::builtin_data_alignments
[dst_tp.unchecked_get_builtin_type_id()],
kernreq);
} else {
nd::callable &child = nd::assign::overload(dst_tp, src_tp[0]);
return child.get()->instantiate(NULL, 0, NULL, ckb, ckb_offset, dst_tp,
dst_arrmeta, 1, src_tp, src_arrmeta,
kernreq, ectx, 0, NULL,
std::map<std::string, ndt::type>());
}
} else {
return src_tp[0].extended()->make_assignment_kernel(
ckb, ckb_offset, dst_tp, dst_arrmeta, src_tp[0], src_arrmeta[0],
kernreq, ectx);
}
} else {
return dst_tp.extended()->make_assignment_kernel(
ckb, ckb_offset, dst_tp, dst_arrmeta, src_tp[0], src_arrmeta[0],
kernreq, ectx);
}
}
示例2: instantiate_copy
static intptr_t instantiate_copy(
const arrfunc_type_data *self,
const arrfunc_type *af_tp, void *ckb,
intptr_t ckb_offset, const ndt::type &dst_tp, const char *dst_arrmeta,
const ndt::type *src_tp, const char *const *src_arrmeta,
kernel_request_t kernreq, const eval::eval_context *ectx,
const nd::array &kwds)
{
if (dst_tp.is_builtin()) {
if (src_tp[0].is_builtin()) {
if (dst_tp.extended() == src_tp[0].extended()) {
return make_pod_typed_data_assignment_kernel(
ckb, ckb_offset,
detail::builtin_data_sizes[dst_tp.unchecked_get_builtin_type_id()],
detail::builtin_data_alignments
[dst_tp.unchecked_get_builtin_type_id()],
kernreq);
}
else {
return make_builtin_type_assignment_kernel(
ckb, ckb_offset, dst_tp.get_type_id(), src_tp[0].get_type_id(),
kernreq, ectx->errmode);
}
}
else {
return src_tp[0].extended()->make_assignment_kernel(
self, af_tp, ckb, ckb_offset, dst_tp, dst_arrmeta, src_tp[0], src_arrmeta[0],
kernreq, ectx, kwds);
}
}
else {
return dst_tp.extended()->make_assignment_kernel(
self, af_tp, ckb, ckb_offset, dst_tp, dst_arrmeta, src_tp[0], src_arrmeta[0],
kernreq, ectx, kwds);
}
}