Skip to content

Commit 71dbd6d

Browse files
committed
Added overload of operator>> that behaves like assignment
Quicker testing fix travis prep for PR
1 parent 32c7768 commit 71dbd6d

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

include/boost/math/differentiation/autodiff.hpp

+22
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,12 @@ class fvar {
393393
template <typename RealType2, size_t Order2>
394394
friend std::ostream& operator<<(std::ostream&, fvar<RealType2, Order2> const&);
395395

396+
template <typename RealType2, size_t Order2>
397+
friend std::istream& operator>>(std::istream&, fvar<RealType2, Order2> &);
398+
399+
template <typename RealType2, size_t Order2>
400+
friend std::wistream& operator>>(std::wistream&, fvar<RealType2, Order2> &);
401+
396402
// C++11 Compatibility
397403
#ifdef BOOST_NO_CXX17_IF_CONSTEXPR
398404
template <typename RootType>
@@ -1730,6 +1736,22 @@ std::ostream& operator<<(std::ostream& out, fvar<RealType, Order> const& cr) {
17301736
return out << ')';
17311737
}
17321738

1739+
template <typename RealType, size_t Order>
1740+
std::istream& operator>>(std::istream& in, fvar<RealType, Order> & cr) {
1741+
in >> cr.v.front();
1742+
BOOST_IF_CONSTEXPR (0 < Order)
1743+
std::fill(cr.v.begin()+1, cr.v.end(), static_cast<RealType>(0));
1744+
return in;
1745+
}
1746+
1747+
template <typename RealType, size_t Order>
1748+
std::wistream& operator>>(std::wistream& in, fvar<RealType, Order> & cr) {
1749+
in >> cr.v.front();
1750+
BOOST_IF_CONSTEXPR (0 < Order)
1751+
std::fill(cr.v.begin()+1, cr.v.end(), static_cast<RealType>(0));
1752+
return in;
1753+
}
1754+
17331755
// Additional functions
17341756

17351757
template <typename RealType, size_t Order>

0 commit comments

Comments
 (0)