system_layout.cpp serif/discretization/blocks/system_layout.hpp limits stdexcept serif/utils/error/errors.hpp serif serif::discretization serif::discretization::blocks #include"serif/discretization/blocks/system_layout.hpp" #include<limits> #include<stdexcept> #include"serif/utils/error/errors.hpp" namespaceserif::discretization::blocks { std::size_tchecked_block_size(conststd::span<conststd::size_t>sizes) { usingnamespaceutils::errors; std::size_ttotal=0; for(conststd::size_tsize:sizes){ serif_ensure<SERiFErrorCode::INVALID_DOF_COUNT,std::overflow_error>(size<=std::numeric_limits<std::size_t>::max()-total,"Thesystem'spackedcoefficientcountoverflowssize_t.Checktheindividualcoordinatesizes."); total+=size; } returntotal; } }//namespaceserif::discretization::blocks