diff --git a/source/api_cc/include/DataModifier.h b/source/api_cc/include/DataModifier.h index 1e611a3930..6d443d9b9c 100644 --- a/source/api_cc/include/DataModifier.h +++ b/source/api_cc/include/DataModifier.h @@ -84,7 +84,7 @@ class DipoleChargeModifierBase { * @brief Get the list of sel types. * @return The list of sel types. */ - virtual std::vector sel_types() const = 0; + virtual const std::vector& sel_types() const = 0; }; /** @@ -161,7 +161,7 @@ class DipoleChargeModifier { * @brief Get the list of sel types. * @return The list of sel types. */ - std::vector sel_types() const; + const std::vector& sel_types() const; private: bool inited; diff --git a/source/api_cc/include/DataModifierTF.h b/source/api_cc/include/DataModifierTF.h index c0021c6947..cd1d696c3c 100644 --- a/source/api_cc/include/DataModifierTF.h +++ b/source/api_cc/include/DataModifierTF.h @@ -84,7 +84,7 @@ class DipoleChargeModifierTF : public DipoleChargeModifierBase { * @brief Get the list of sel types. * @return The list of sel types. */ - std::vector sel_types() const { + const std::vector& sel_types() const { assert(inited); return sel_type; }; diff --git a/source/api_cc/src/DataModifier.cc b/source/api_cc/src/DataModifier.cc index 38d1fc879a..bac2e13da5 100644 --- a/source/api_cc/src/DataModifier.cc +++ b/source/api_cc/src/DataModifier.cc @@ -92,6 +92,6 @@ double DipoleChargeModifier::cutoff() const { return dcm->cutoff(); } int DipoleChargeModifier::numb_types() const { return dcm->numb_types(); } -std::vector DipoleChargeModifier::sel_types() const { +const std::vector& DipoleChargeModifier::sel_types() const { return dcm->sel_types(); }