Std :: ofstream móvel?

Tenho este mapa que compila bem no MSVC10:

std::map<std::string, std::ofstream> m_logFiles;

Mas no ubuntu usando o g ++ 4.5 com C ++ 0x ativado, recebo a seguinte mensagem de erro:

/ usr / include / c ++ / 4.5 / bits / ios_base.h | 785 | erro: ‘std :: ios_base :: ios_base (const std :: ios_base &) 'é privado

Usando ponteiros em vez de objetos, resolvi o problem
Pesquisando na Web, aprendi que os fluxos não devem ser copiados (o motivo foi bem explicado). Mas minha pergunta é: std :: ofstream é um tipo móvel? Se for, não deveria permitir seu uso como parâmetro de modelo nos contêineres padrão?
Se sim, então o g ++ está atrás do MSVC10 neste ponto? (o que explicaria por que funciona no MSVC). Eu sei que seria tolo pedir aos escritores de compiladores que implementem completamente algo que nem é final, mas estou curioso em relação ao futur

utilização do g ++ 4.6.1 não ajudo

Edit: lendo os comentários, eu cavei um pouco mais e descobri que a inserção está causando o problema, não a declaração do map

Lendo o link do Cubbi, tentei o seguinte:

#include <string>
#include <fstream>
#include <map>

using namespace std;

int main()
{
    map<string, ofstream> m_logFiles;
    ofstream st;
    m_logFiles.insert(make_pair<string, ofstream>(string("a"), move(st)));
    return 0;
}

Mas ainda sem sorte. O g ++ reclama do uso do construtor de cópias excluídas

questionAnswers(2)

yourAnswerToTheQuestion