@@ -393,6 +393,12 @@ class fvar {
393
393
template <typename RealType2, size_t Order2>
394
394
friend std::ostream& operator <<(std::ostream&, fvar<RealType2, Order2> const &);
395
395
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
+
396
402
// C++11 Compatibility
397
403
#ifdef BOOST_NO_CXX17_IF_CONSTEXPR
398
404
template <typename RootType>
@@ -1730,6 +1736,22 @@ std::ostream& operator<<(std::ostream& out, fvar<RealType, Order> const& cr) {
1730
1736
return out << ' )' ;
1731
1737
}
1732
1738
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
+
1733
1755
// Additional functions
1734
1756
1735
1757
template <typename RealType, size_t Order>
0 commit comments