1234567891011121314151617181920212223242526272829303132333435 |
- #ifndef EIGEN_MISC_MOVABLE_SCALAR_H
- #define EIGEN_MISC_MOVABLE_SCALAR_H
- #include <vector>
- namespace Eigen
- {
- template <typename Scalar, typename Base = std::vector<Scalar>>
- struct MovableScalar : public Base
- {
- MovableScalar() = default;
- ~MovableScalar() = default;
- MovableScalar(const MovableScalar&) = default;
- MovableScalar(MovableScalar&& other) = default;
- MovableScalar& operator=(const MovableScalar&) = default;
- MovableScalar& operator=(MovableScalar&& other) = default;
- MovableScalar(Scalar scalar) : Base(100, scalar) {}
- operator Scalar() const { return this->size() > 0 ? this->back() : Scalar(); }
- };
- template<> struct NumTraits<MovableScalar<float>> : GenericNumTraits<float> {};
- }
- #endif
|