clang++ C++0x std::locale

I'm attempting to build the following application; pinched from http://en.cppreference.com/w/cpp/locale/messages.

#include 
#include 
int main()
{
    std::locale loc("de_DE");    
    auto& facet = std::use_facet>(loc);
    auto cat = facet.open("libstdc++", loc, "/usr/share/locale");
    std::cout << "\"please\" in German: "
              << facet.get(cat, 0, 0, "please") << '\n'
              << "\"thank you\" in German: "
              << facet.get(cat, 0, 0, "thank you") << '\n';
    facet.close(cat);
}
main.cpp:134:45: error: too many arguments to function call, expected 2, have 3
    auto cat = facet.open("libstdc++", loc, "/usr/share/locale");
               ~~~~~~~~~~                   ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/locale:3528:5: note: 'open' declared here
    _LIBCPP_ALWAYS_INLINE
    ^
/usr/include/c++/v1/__config:84:32: note: instantiated from:
#define _LIBCPP_ALWAYS_INLINE  __attribute__ ((__visibility__("hidden"), __always_inline__))
                               ^
1 error generated.

Я убрал третий аргумент для open, и все в порядке. Проблема в том, что я хочу указать местоположение для моего текстового домена, отличное от стандартного. Я искал bindtextdomain, но не смог распознать его и на моей машине. Какие-нибудь подсказки?

Окружение:

  • Mac OSX Lion
  • Apple clang версии 2.1 (tags/Apple/clang-163.7.1) (основан на LLVM 3.0svn)
  • Цель: x86_64-apple-darwin11.2. 0
  • Модель потока: posix

11
задан Mat 27 November 2011 в 11:47
поделиться