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


C++ ArrayData::empty方法代码示例

本文整理汇总了C++中ArrayData::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ ArrayData::empty方法的具体用法?C++ ArrayData::empty怎么用?C++ ArrayData::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ArrayData的用法示例。


在下文中一共展示了ArrayData::empty方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: isHead

bool Globals::isHead(ssize_t pos) const {
  if (staticSize() > 0) return pos == 0;
  if (pos < -1) {
    ArrayData *arr = Array::get();
    ASSERT(arr);
    return !arr->empty() && wrapIter(pos) == arr->iter_begin();
  }
  return false;
}
开发者ID:activeingredient,项目名称:hiphop-php,代码行数:9,代码来源:hphp_system.cpp

示例2: isTail

bool Globals::isTail(ssize_t pos) const {
  ArrayData *arr = Array::get();
  if (!arr || arr->empty()) {
    return staticSize() > 0 && pos == staticSize() - 1;
  }
  if (pos < -1) {
    return wrapIter(pos) == arr->iter_end();
  }
  return false;
}
开发者ID:activeingredient,项目名称:hiphop-php,代码行数:10,代码来源:hphp_system.cpp

示例3: HHVM_FUNCTION

String HHVM_FUNCTION(serialize, const Variant& value) {
  switch (value.getType()) {
    case KindOfUninit:
    case KindOfNull:
      return s_Null;
    case KindOfBoolean:
      return value.getBoolean() ? s_True : s_False;
    case KindOfInt64: {
      StringBuffer sb;
      sb.append("i:");
      sb.append(value.getInt64());
      sb.append(';');
      return sb.detach();
    }
    case KindOfPersistentString:
    case KindOfString: {
      StringData *str = value.getStringData();
      StringBuffer sb;
      sb.append("s:");
      sb.append(str->size());
      sb.append(":\"");
      sb.append(str->data(), str->size());
      sb.append("\";");
      return sb.detach();
    }
    case KindOfResource:
      return s_Res;
    case KindOfPersistentArray:
    case KindOfArray: {
      ArrayData *arr = value.getArrayData();
      if (arr->empty()) {
        if (arr->isVecArray()) return s_EmptyVecArray;
        if (arr->isDict()) return s_EmptyDictArray;
        return s_EmptyArray;
      }
      // fall-through
    }
    case KindOfDouble:
    case KindOfObject: {
      VariableSerializer vs(VariableSerializer::Type::Serialize);
      return vs.serialize(value, true);
    }
    case KindOfRef:
    case KindOfClass:
      break;
  }
  not_reached();
}
开发者ID:Thomascarette,项目名称:hhvm,代码行数:48,代码来源:ext_std_variable.cpp

示例4: f_serialize

String f_serialize(const Variant& value) {
  switch (value.getType()) {
  case KindOfUninit:
  case KindOfNull:
    return "N;";
  case KindOfBoolean:
    return value.getBoolean() ? "b:1;" : "b:0;";
  case KindOfInt64: {
    StringBuffer sb;
    sb.append("i:");
    sb.append(value.getInt64());
    sb.append(';');
    return sb.detach();
  }
  case KindOfStaticString:
  case KindOfString: {
    StringData *str = value.getStringData();
    StringBuffer sb;
    sb.append("s:");
    sb.append(str->size());
    sb.append(":\"");
    sb.append(str->data(), str->size());
    sb.append("\";");
    return sb.detach();
  }
  case KindOfArray: {
    ArrayData *arr = value.getArrayData();
    if (arr->empty()) return "a:0:{}";
    // fall-through
  }
  case KindOfObject:
  case KindOfResource:
  case KindOfDouble: {
    VariableSerializer vs(VariableSerializer::Type::Serialize);
    return vs.serialize(value, true);
  }
  default:
    assert(false);
    break;
  }
  return "";
}
开发者ID:2bj,项目名称:hhvm,代码行数:42,代码来源:builtin-functions.cpp


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