Я пытаюсь создать следующее приложение; pinched от http://en.cppreference.com/w/cpp/locale/messages.
#include <iostream>
#include <locale>
int main()
{
std::locale loc("de_DE");
auto& facet = std::use_facet<std::messages<char>>(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.
Я удалил третий аргумент, чтобы открыть, и все хорошо. Проблема в том, что я хочу указать местоположение для моего текстового домена, отличного от значения по умолчанию. Я просмотрел bindtextdomain, но не смог распознать это на своей машине. Любые подсказки?
Окружающая среда:
- Mac OSX Lion
- Apple clang version 2.1 (теги/Apple/clang-163.7.1) (на основе LLVM 3.0svn)
- Цель: x86_64-apple-darwin11.2.0
- Модель темы: posix