“24927e593b45f9b06c9632c79730c5f5b7928e7f”上不存在“develop/api_doc/v2/data.html”
Move constants from class OperatorBase to namespace framework
Created by: wangkuiyi
In class framework::OperatorBase
, there are some constants:
class OperatorBase {
public:
/// If a variable is a empty variable, that name will be used.
static std::string EMPTY_VAR_NAME() { return "@EMPTY@"; }
/// If a variable is a temporary variable, that name will be set in Python,
/// but it will be convert to a unique name in scope after OpCreator.
static std::string TMP_VAR_NAME() { return "@TEMP@"; }
/// If a variable's name has a certain suffix, it means that the
/// variable is the gradient of another varibale.
/// e.g. Variable "x@GRAD" is the gradient of varibale "x".
static std::string GRAD_VAR_SUFFIX() { return "@GRAD"; }
static std::string GRAD_VAR_NAME(const std::string& name) {
return name + GRAD_VAR_SUFFIX();
}
which are not logically in the scope of OperatorBase, but in order to put them into class OperatorBase, we intentionally defined these constants as static functions. This is unnecessary overkilling.