跳到主要内容

Append

函数功能

向后添加tiling data,若添加超过可容纳的最大长度,则添加失败。

函数原型

template<typename T, typename std::enable_if<std::is_standard_layout<T>::value, int>::type = 0> ge::graphStatus Append(const T &data);
template<typename T, typename std::enable_if<std::is_standard_layout<T>::value, int>::type = 0> ge::graphStatus Append(const T *data, size_t append_num);

参数说明

参数输入/输出说明
T输入添加的tiling data的类型。
const T &data输入添加的tiling data实例。
const T *data输入添加的tiling data起始地址。
append_num输入添加的tiling data的个数,共添加append_num个T类型的tiling data。

返回值

  • 成功返回ge::GRAPH_SUCCESS。
  • 失败返回ge::GRAPH_FAILED。

约束说明

添加的tiling data必须为符合standard_layout,即内存平铺。

调用示例

auto td_buf = TilingData::CreateCap(100U);
auto td = reinterpret_cast<TilingData *>(td_buf.get());

// 1
struct AppendData{
int a = 10;
int b = 100;
};
AppendData ad;
auto ret = td->Append<AppendData>(ad); // ge::GRAPH_SUCCESS

// 2
size_t append_num = 10;
int32_t *td = new int32_t[append_num];
auto ret = td->Append<int32_t>(td, append_num); // ge::GRAPH_SUCCESS

// 3
size_t append_num = 50;
int32_t *td = new int32_t[append_num];
auto ret = td->Append<int32_t>(td, append_num); // ge::GRAPH_FAILED