2012-03-29 35 views
7

Trong C++, tôi có thể thiết miền địa phương hiện tại như thế này:Lấy ngôn ngữ toàn cục hiện được đặt trong C++?

std::locale::global(std::locale(name)) 

Nhưng làm thế nào tôi có thể có được miền địa phương toàn cầu hiện nay?

Trong mã của mình, tôi cần lấy miền địa phương hiện tại, lưu nó vào một biến tmp var, đặt ngôn ngữ toàn cục thành cái gì đó khác, xuất một cái gì đó, sau đó đặt nó trở lại miền địa phương trước đó.

+0

Chưa sử dụng, nhưng đây có phải là những gì bạn đang theo dõi không? http://en.cppreference.com/w/cpp/io/ios_base/getloc chỉnh sửa: không bao giờ nhớ, tôi thấy giá trị trả về là ngôn ngữ hiện tại. Xem câu trả lời của Corbin. – chris

+0

Bạn có muốn địa phương toàn cầu (mặc định là '" C "'), hoặc ngôn ngữ của môi trường? –

+0

Tôi muốn giá trị của bất kỳ ai đó đã đặt trước khi sử dụng 'std :: locale :: global'. – Frank

Trả lời

2

Như ipc nói, các nhà xây dựng mặc định cho std :: locale cung cấp cho bạn một bản sao của miền địa phương toàn cầu hiện nay, nhưng tại sao bạn cần bộ nhớ cache và sau đó thiết lập lại ngôn ngữ toàn cầu?

Các thường trình C++ sử dụng ngôn ngữ thường có thể sử dụng đối tượng ngôn ngữ C++ mà bạn chỉ định, vì vậy bạn không phải gây rối với ngôn ngữ toàn cục. Sử dụng các đối tượng miền địa phương nên được ưu tiên sử dụng ngôn ngữ chung C++.

Các vấn đề liên quan