今天读到这几行代码,把我弄的晕了,后来才想明白。
c_api_internal.h (tensorflow-master\tensorflow\c\eager)
typedef struct TFE_TensorHandle TFE_TensorHandle;//初看此行代码时,我一愣,把自己重命名成自己,这代码多余;
//再细想,不多余,以后用到这个结构体,可以少一个struct了。
struct TFE_TensorHandle {
TFE_TensorHandle(const tensorflow::Tensor& t, tensorflow::Device* d,
tensorflow::Device* op_device)
: handle(new tensorflow::TensorHandle(t, d, op_device, nullptr)) {}
TFE_TensorHandle(tensorflow::TensorHandle* handle) : handle(handle) {}
tensorflow::TensorHandle* handle;
// Create a symbolic tensor.
TFE_TensorHandle(TF_Output t, TF_DataType dtype)
: handle(new tensorflow::TensorHandle(
tensorflow::OutputGraphNode{t.oper, t.index},
static_cast<tensorflow::DataType>(dtype))) {}
};
看到4个TFE_TensorHandle ,瞬间晕了,这是啥,此时脑袋不清醒?后来细想,大括号内的TFE_TensorHandle 是构造函数啊。把结构体当成类就顺当多了。