当前位置: 首页>>代码示例>>C++>>正文


C++ type::unchecked_get_builtin_type_id方法代码示例

本文整理汇总了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);
  }
}
开发者ID:cpcloud,项目名称:libdynd,代码行数:37,代码来源:copy_kernel.cpp

示例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);
  }
}
开发者ID:aterrel,项目名称:libdynd,代码行数:36,代码来源:copy_arrfunc.cpp


注:本文中的ndt::type::unchecked_get_builtin_type_id方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。