diff --git a/NumLib/DOF/SimpleMatrixVectorProvider.cpp b/NumLib/DOF/SimpleMatrixVectorProvider.cpp index c62d4f182600959c18fdd6b1a2b861c176ec1780..a65e680806bc7a9247ee0894dd75e03bf7f5c250 100644 --- a/NumLib/DOF/SimpleMatrixVectorProvider.cpp +++ b/NumLib/DOF/SimpleMatrixVectorProvider.cpp @@ -21,7 +21,7 @@ namespace LinAlg = MathLib::LinAlg; namespace NumLib { -template <bool do_search, typename MatVec, typename... Args> +template <typename MatVec, typename... Args> std::pair<MatVec*, bool> SimpleMatrixVectorProvider::get_( std::size_t& id, std::map<MatVec*, std::size_t>& used_map, Args&&... args) { @@ -34,22 +34,22 @@ std::pair<MatVec*, bool> SimpleMatrixVectorProvider::get_( return {res.first->first, true}; } -template <bool do_search, typename... Args> +template <typename... Args> std::pair<GlobalMatrix*, bool> SimpleMatrixVectorProvider::getMatrix_( std::size_t& id, Args&&... args) { - return get_<do_search>(id, _used_matrices, std::forward<Args>(args)...); + return get_(id, _used_matrices, std::forward<Args>(args)...); } GlobalMatrix& SimpleMatrixVectorProvider::getMatrix(std::size_t& id) { - return *getMatrix_<true>(id).first; + return *getMatrix_(id).first; } GlobalMatrix& SimpleMatrixVectorProvider::getMatrix( MathLib::MatrixSpecifications const& ms, std::size_t& id) { - return *getMatrix_<true>(id, ms).first; + return *getMatrix_(id, ms).first; // TODO assert that the returned object always is of the right size } @@ -68,37 +68,37 @@ void SimpleMatrixVectorProvider::releaseMatrix(GlobalMatrix const& A) } } -template <bool do_search, typename... Args> +template <typename... Args> std::pair<GlobalVector*, bool> SimpleMatrixVectorProvider::getVector_( std::size_t& id, Args&&... args) { - return get_<do_search>(id, _used_vectors, std::forward<Args>(args)...); + return get_(id, _used_vectors, std::forward<Args>(args)...); } GlobalVector& SimpleMatrixVectorProvider::getVector(std::size_t& id) { - return *getVector_<true>(id).first; + return *getVector_(id).first; } GlobalVector& SimpleMatrixVectorProvider::getVector( MathLib::MatrixSpecifications const& ms) { std::size_t id = 0u; - return *getVector_<false>(id, ms).first; + return *getVector_(id, ms).first; // TODO assert that the returned object always is of the right size } GlobalVector& SimpleMatrixVectorProvider::getVector( MathLib::MatrixSpecifications const& ms, std::size_t& id) { - return *getVector_<true>(id, ms).first; + return *getVector_(id, ms).first; // TODO assert that the returned object always is of the right size } GlobalVector& SimpleMatrixVectorProvider::getVector(GlobalVector const& x) { std::size_t id = 0u; - auto const& res = getVector_<false>(id, x); + auto const& res = getVector_(id, x); if (!res.second) { // no new object has been created LinAlg::copy(x, *res.first); @@ -109,7 +109,7 @@ GlobalVector& SimpleMatrixVectorProvider::getVector(GlobalVector const& x) GlobalVector& SimpleMatrixVectorProvider::getVector(GlobalVector const& x, std::size_t& id) { - auto const& res = getVector_<true>(id, x); + auto const& res = getVector_(id, x); if (!res.second) { // no new object has been created LinAlg::copy(x, *res.first); diff --git a/NumLib/DOF/SimpleMatrixVectorProvider.h b/NumLib/DOF/SimpleMatrixVectorProvider.h index f8db6b5da1eecc0b0510f0b05499465e0e569f26..287781dde024e1d65d475a65e304c0f15eedc65a 100644 --- a/NumLib/DOF/SimpleMatrixVectorProvider.h +++ b/NumLib/DOF/SimpleMatrixVectorProvider.h @@ -55,15 +55,15 @@ public: ~SimpleMatrixVectorProvider() override; private: - template<bool do_search, typename... Args> + template <typename... Args> std::pair<GlobalMatrix*, bool> getMatrix_(std::size_t& id, Args&&... args); - template<bool do_search, typename... Args> + template <typename... Args> std::pair<GlobalVector*, bool> getVector_(std::size_t& id, Args&&... args); // returns a pair with the pointer to the matrix/vector and // a boolean indicating if a new object has been built (then true else false) - template <bool do_search, typename MatVec, typename... Args> + template <typename MatVec, typename... Args> std::pair<MatVec*, bool> get_(std::size_t& id, std::map<MatVec*, std::size_t>& used_map, Args&&... args);