cuốn sách gpt4 ai đã làm

c++ - boost::filesystem::path::native() trả về std::basic_string thay vì std::basic_string

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 23:14:26 36 4
mua khóa gpt4 Nike

Mặc dù đoạn mã sau biên dịch trên Linux nhưng tôi không thể biên dịch nó trên Windows:

boost::filesystem::path defaultSaveFilePath( base_directory );
defaultSaveFilePath = defaultSaveFilePath / "defaultfile.name";
const std::string s = defaultSaveFilePath.native();
trả lại (các) lưu;

Trong số đó, base_directory là một thuộc tính của một lớp, kiểu của nó là std::string và hàm save chỉ yêu cầu tham số là const std::string &. Trình biên dịch sẽ nhắc dòng mã thứ ba:

Lỗi: Đã yêu cầu chuyển đổi từ 'const string_type {aka const std::basic_string}' sang loại không vô hướng 'const string {aka const std::basic_string}'

Đối với phần mềm này, tôi đã sử dụng cả Boost 1.54 (đối với một số thư viện công cộng) và Qt 4.8.4 (đối với giao diện người dùng sử dụng thư viện công cộng này) và tôi đã biên dịch mọi thứ bằng MingW GCC 4.6.2.

Bản dựng Windows Boost của tôi dường như đang quay trở lại std::basic_string vì một số lý do. Nếu đánh giá của tôi là đúng, tôi sẽ hỏi bạn:Làm cách nào để Boost trả về một phiên bản của std::string? Nhân tiện, điều này có thể được không?

Nếu tôi đánh giá vấn đề kém, bạn có thể vui lòng cung cấp một số giải pháp không.

chúc mừng.

câu trả lời hay nhất

Trên Windows, boost::filesystem biểu thị đường dẫn gốc là wchar_ttheo thiết kế - xem documentation .Điều này hoàn toàn hợp lý vì các đường dẫn trên Windows có thể chứa các ký tự Unicode không phải ASCII. Bạn không thể thay đổi hành vi này.

请注意 std::chuỗi只是std::basic_string và tất cả các hàm tệp gốc của Windows có thể chấp nhận tên đường dẫn ký tự rộng (chỉ cần gọi FooW() thay vì Foo()).

Về c++ - boost::filesystem::path::native() trả về std::basic_string thay vì std::basic_string, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/18366306/

36 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress