本文主要是介绍添加Tags决定构造函数的分发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个是从TensorFlow的源码中看到的用于区分同参数下不同类型的构造函数
通过添加一个class ,里面添加不同的enum class 实现编译期间自动选择合适的构造,
enum class创建空类,然后利用重载函数实现编译期间区分
struct Tags {enum class ScopeName;enum class OpName;enum class ControlDeps;enum class Device;enum class SingleUseScope;enum class ExitOnError;enum class KernelLabel;enum class Colocate;};Impl(Graph* graph, Status* status, NameMap* name_map, ShapeRefiner* refiner,bool disable_shape_inference);Impl(const Scope& other, Tags::ScopeName, const string& name,bool copy_names);Impl(const Scope& other, Tags::OpName, const string& name,const string& op_name);Impl(const Scope& other, Tags::ControlDeps,std::vector<Operation> control_deps, bool clear_control_deps);Impl(const Scope& other, Tags::Device, const string& device);Impl(const Scope& other, Tags::SingleUseScope, const string& op_name);Impl(const Scope& other, Tags::ExitOnError);Impl(const Scope& other, Tags::KernelLabel, const string& kernel_label);Impl(const Scope& other, Tags::Colocate, const Operation& colocate_with_op,bool clear_colocations);
这篇关于添加Tags决定构造函数的分发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!