13 msg +=
"\n(should be ";
14 msg += std::to_string(sz);
16 msg += std::to_string(v.size());
18 throw std::invalid_argument(msg);
26 }
else if (v->size() != sz) {
27 msg +=
"\n(should be ";
28 msg += std::to_string(sz);
30 msg += std::to_string(v->size());
32 throw std::invalid_argument(msg);
36template <Config Conf,
class V>
38 name +=
": dimension mismatch";
39 check_dim_msg<Conf>(std::forward<V>(v), sz, name);
44 if (m.cols() != cols || m.rows() != rows) {
45 msg +=
"\n(should be ";
46 msg += std::to_string(rows);
48 msg += std::to_string(cols);
50 msg += std::to_string(m.rows());
52 msg += std::to_string(m.cols());
54 throw std::invalid_argument(msg);
60 name +=
": dimension mismatch";
61 check_dim_msg<Conf>(m, rows, cols, name);
void check_dim(std::string name, V &&v, auto sz)
void check_dim_msg(crvec< Conf > v, auto sz, std::string msg)
typename Conf::crmat crmat
typename Conf::crvec crvec