diff --git a/ortools/linear_solver/proto_solver/gurobi_proto_solver.cc b/ortools/linear_solver/proto_solver/gurobi_proto_solver.cc index 2b9ecbec87..066d68c9af 100644 --- a/ortools/linear_solver/proto_solver/gurobi_proto_solver.cc +++ b/ortools/linear_solver/proto_solver/gurobi_proto_solver.cc @@ -27,6 +27,7 @@ #include "absl/strings/str_format.h" #include "absl/strings/str_join.h" #include "absl/strings/str_split.h" +#include "absl/strings/string_view.h" #include "absl/types/optional.h" #include "ortools/base/cleanup.h" #include "ortools/base/status_macros.h" @@ -222,7 +223,7 @@ int AddMaxConstraint(const MPGeneralConstraintProto& gen_cst, } } // namespace -absl::Status SetSolverSpecificParameters(const std::string& parameters, +absl::Status SetSolverSpecificParameters(absl::string_view parameters, GRBenv* gurobi) { if (parameters.empty()) return absl::OkStatus(); std::vector error_messages; diff --git a/ortools/linear_solver/proto_solver/gurobi_proto_solver.h b/ortools/linear_solver/proto_solver/gurobi_proto_solver.h index 918ac4df10..10d6199ce9 100644 --- a/ortools/linear_solver/proto_solver/gurobi_proto_solver.h +++ b/ortools/linear_solver/proto_solver/gurobi_proto_solver.h @@ -18,6 +18,7 @@ #include "absl/status/status.h" #include "absl/status/statusor.h" +#include "absl/strings/string_view.h" #include "ortools/gurobi/environment.h" #include "ortools/linear_solver/linear_solver.pb.h" @@ -46,7 +47,7 @@ absl::StatusOr GurobiSolveProto( // "#\n# Gurobi-specific parameters, still part of the // comment\n\nThreads=1\nPresolve 2,SolutionLimit=100" This function will // process each and every token, even if an intermediate token is unrecognized. -absl::Status SetSolverSpecificParameters(const std::string& parameters, +absl::Status SetSolverSpecificParameters(absl::string_view parameters, GRBenv* gurobi); } // namespace operations_research #endif // OR_TOOLS_LINEAR_SOLVER_PROTO_SOLVER_GUROBI_PROTO_SOLVER_H_ diff --git a/ortools/linear_solver/proto_solver/scip_proto_solver.cc b/ortools/linear_solver/proto_solver/scip_proto_solver.cc index 3d046a5d19..ea8fc8aa6c 100644 --- a/ortools/linear_solver/proto_solver/scip_proto_solver.cc +++ b/ortools/linear_solver/proto_solver/scip_proto_solver.cc @@ -31,6 +31,7 @@ #include "absl/strings/str_cat.h" #include "absl/strings/str_format.h" #include "absl/strings/str_split.h" +#include "absl/strings/string_view.h" #include "absl/time/time.h" #include "ortools/base/cleanup.h" #include "ortools/base/commandlineflags.h" @@ -277,8 +278,7 @@ absl::Status AddAbsConstraint(const MPGeneralConstraintProto& gen_cst, std::vector vars; std::vector vals; std::vector cons; - auto add_abs_constraint = - [&](const std::string& name_prefix) -> absl::Status { + auto add_abs_constraint = [&](absl::string_view name_prefix) -> absl::Status { SCIP_CONS* scip_cons = nullptr; CHECK(vars.size() == vals.size()); const std::string name = @@ -384,7 +384,7 @@ absl::Status AddMinMaxConstraint(const MPGeneralConstraintProto& gen_cst, std::vector vars; std::vector vals; std::vector cons; - auto add_lin_constraint = [&](const std::string& name_prefix, + auto add_lin_constraint = [&](absl::string_view name_prefix, double lower_bound = 0.0, double upper_bound = 0.0) -> absl::Status { SCIP_CONS* scip_cons = nullptr;