aboutsummaryrefslogtreecommitdiff
path: root/src/ios_base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ios_base.cpp')
-rw-r--r--src/ios_base.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/ios_base.cpp b/src/ios_base.cpp
index e933243..04341e7 100644
--- a/src/ios_base.cpp
+++ b/src/ios_base.cpp
@@ -45,10 +45,33 @@ bool ios_base::Init::sDone = false;
// Implementation of the ios_base, common stuff for all the streams.
ios_base::ios_base()
- : mPrecision(6), mWidth(0) {}
+ : mFlags(skipws | dec), mPrecision(6), mWidth(0) {}
ios_base::~ios_base() {}
+ios_base::fmtflags ios_base::flags(fmtflags flags) {
+ fmtflags prev = mFlags;
+ mFlags = flags;
+ return prev;
+}
+
+ios_base::fmtflags ios_base::setf(fmtflags flags) {
+ fmtflags prev = mFlags;
+ mFlags = flags;
+ return prev;
+}
+
+ios_base::fmtflags ios_base::setf(fmtflags flags, fmtflags mask) {
+ fmtflags prev = mFlags;
+ mFlags &= ~mask;
+ mFlags |= (flags & mask);
+ return prev;
+}
+
+void ios_base::unsetf(fmtflags mask) {
+ mFlags &= ~mask;
+}
+
streamsize ios_base::precision(streamsize precision) {
const streamsize prev = mPrecision;
if (precision >= 0) { // Not sure what a negative precision would mean.