Boost logo

Boost :

Subject: [boost] [Locale] Stream manipulator bug
From: Alexander Lamaison (awl03_at_[hidden])
Date: 2010-10-09 13:15:03


The latest version of Boost.Locale is doing something wierd to stream
manipulators. For example, the following code should print 63:2c:7f. If
you uncomment the line that sets the global locale to use a boost::locale
instance, it prints 990:440:127. It seems to be ignoring the std::hex
manipulator and doing something strange with std::width.

#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>

#include <boost/locale.hpp>

std::string hexify()
{
        std::ostringstream hex_hash;

        hex_hash << std::hex << std::setfill('0');

        unsigned int data[] = {99, 44, 127};
        for(size_t i = 0; i < 3; ++i)
        {
                if (!hex_hash.str().empty())
                        hex_hash << ":";

                hex_hash << std::setw(2) << data[i];
        }

        return hex_hash.str();
}

int main()
{
        using boost::locale::generator;
        generator gen;

        //std::locale::global(gen(""));

        std::cout << hexify() << std::endl;
}

This is on Windows 7 with Boost.Locale compiled to only use the Win32
backend.

Alex

-- 
Easy SFTP for Windows Explorer (http://www.swish-sftp.org)

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk