const_string lib issue
I'm trying [const_string][1] lib that looks not bad, but it crashes at runtime with access violation(atomic_count, operator++()). The test code:

    #include <boost/const_string/const_string.hpp>
    #include <boost/const_string/concatenation.hpp>
    
    typedef boost::const_string<wchar_t> wcstring;
    
    class Test
    {
    private:
        const wcstring &s1;
        const wcstring &s2;
    
    public:
        Test()
            : s1(L"")
            , s2(L"")
        {
        }
    
        const wcstring &GetS1()
        {
            return s1;
        }
    
        const wcstring &GetS2()
        {
            return s2;
        }
    };
    
    
    Test t;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        //Test t;
        wcstring t1 = t.GetS1(); // crashes here
        wcstring t2 = t.GetS2();
    
        return 0;
    }

It crashes only if t is global. If I move declaration into main(), it's ok.
System: VS 2010, boost v. 1.47.0

The question: Am I doing something wrong or is it problem of library / compiler?
Can someone recommend a more stable implementation of immutable strings for C++?

  [1]: http://conststring.sourceforge.net/

const_string lib issue
===

I'm trying [const_string][1] lib that looks not bad, but it crashes at runtime with access violation(atomic_count, operator++()). The test code:

    #include <boost/const_string/const_string.hpp>
    #include <boost/const_string/concatenation.hpp>
    
    typedef boost::const_string<wchar_t> wcstring;
    
    class Test
    {
    private:
        const wcstring &s1;
        const wcstring &s2;
    
    public:
        Test()
            : s1(L"")
            , s2(L"")
        {
        }
    
        const wcstring &GetS1()
        {
            return s1;
        }
    
        const wcstring &GetS2()
        {
            return s2;
        }
    };
    
    
    Test t;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        //Test t;
        wcstring t1 = t.GetS1(); // crashes here
        wcstring t2 = t.GetS2();
    
        return 0;
    }

It crashes only if t is global. If I move declaration into main(), it's ok.
System: VS 2010, boost v. 1.47.0

The question: Am I doing something wrong or is it problem of library / compiler?
Can someone recommend a more stable implementation of immutable strings for C++?

  [1]: http://conststring.sourceforge.net/
