'Error message: "setw is not defined" using g++

I am trying to compile using gcc a project which earlier used SunStudio and am getting an error in the following code:

ostream & operator << ( ostream & os, const UtlDuration & d )
{
    if ( d._nsec == 0 )
    {
        os << d._sec << " sec";
        return os;
    }
    else
    {
        cout.fill( '0' );
                os << d._sec << "." << std::setw(9) << d._nsec << " sec";
        cout.fill( ' ' );
        return os;
    }
}

Error: “setw” is not a member of “std”

I am not able to resolve this error can someone please explain me reason behind this error

c++


Solution 1:[1]

You need to include the header which declares it:

#include <iomanip>

Solution 2:[2]

Do following two steps:

  1. include iomanip
  2. write std::setw() instead of setw()

Compile and enjoy...

Solution 3:[3]

setw(num) is not defined in iostream library. So add-

#include <iomanip>

in the code and add

using namespace std

it worked for me.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 David Heffernan
Solution 2 Muhammad Kazim Korai
Solution 3 Eric Aya