@@ -34,20 +34,14 @@ namespace gtsam {
3434 }
3535
3636 /* ************************************************************************* */
37- template <typename KEYS>
38- JacobianFactor::JacobianFactor (const KEYS& keys,
39- const VerticalBlockMatrix& augmentedMatrix,
37+ template <typename KEYS, typename MATRIX,
38+ typename = typename std::enable_if<std::is_same<
39+ std::decay_t <MATRIX>, VerticalBlockMatrix>::value>::type>
40+ JacobianFactor::JacobianFactor (KEYS&& keys, MATRIX&& augmentedMatrix,
4041 const SharedDiagonal& model)
41- : Base(keys), Ab_(augmentedMatrix), model_(model) {
42- checkAb (model, augmentedMatrix);
43- }
44-
45- /* ************************************************************************* */
46- template <typename KEYS>
47- JacobianFactor::JacobianFactor (const KEYS& keys,
48- VerticalBlockMatrix&& augmentedMatrix,
49- const SharedDiagonal& model)
50- : Base(keys), Ab_(std::move(augmentedMatrix)), model_(model) {
42+ : Base(std::forward<KEYS>(keys)),
43+ Ab_ (std::forward<MATRIX>(augmentedMatrix)),
44+ model_(model) {
5145 checkAb (model, Ab_);
5246 }
5347
0 commit comments