Чтение / запись файла с именем файла Unicode с простым C ++ / Boost

Я хочу читать / записывать файл с именем файла в юникоде, используя файловую систему boost, языковой стандарт boost в Windows (mingw) (в конце должен быть независимым от платформы).

Это мой код:

#include <boost/locale.hpp>
#define BOOST_NO_CXX11_SCOPED_ENUMS
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
namespace fs = boost::filesystem;

#include <string>
#include <iostream>

int main() {

  std::locale::global(boost::locale::generator().generate(""));
  fs::path::imbue(std::locale());

  fs::path file("äöü.txt");
  if (!fs::exists(file)) {
    std::cout << "File does not exist" << std::endl;
  }

  fs::ofstream(file, std::ios_base::app) << "Test" << std::endl;
}

fs::exists действительно проверяет файл с именемäöü.txt, Но записанный файл имеет названиеäöü.txt.

Чтение дает ту же проблему. С помощьюfs::wofstream тоже не помогает, так как это просто обрабатывает широкий ввод.

Как я могу это исправить с помощью C ++ 11 и повысить?

Редактировать: Сообщение об ошибке опубликовано:https://svn.boost.org/trac/boost/ticket/9968

Чтобы уточнить для награды: С Qt все довольно просто, но я бы хотел кроссплатформенное решение, использующее только C ++ 11 и Boost, без Qt и ICU.

Ответы на вопрос(4)

Ваш ответ на вопрос