@@ -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
17351757template <typename RealType, size_t Order>
0 commit comments