- Op(MPI_User_function* function, bool commutative, bool predefined=false) : func_(function), is_commutative_(commutative), predefined_(predefined) {}
+ Op(MPI_User_function* function, bool commutative, bool predefined = false, int types = 0, std::string name = "MPI_Op")
+ : func_(function), is_commutative_(commutative), is_predefined_(predefined), types_(types), name_(std::move(name))
+ {
+ if (not predefined)
+ this->add_f();
+ }