Câu hỏi được gắn thẻ «c++»

C ++ là ngôn ngữ lập trình có mục đích chung. Ban đầu nó được thiết kế như một phần mở rộng cho C và có cú pháp tương tự, nhưng giờ đây nó là một ngôn ngữ hoàn toàn khác. Sử dụng thẻ này cho các câu hỏi về mã (sẽ được) được biên dịch bằng trình biên dịch C ++. Sử dụng thẻ dành riêng cho phiên bản cho các câu hỏi liên quan đến sửa đổi tiêu chuẩn cụ thể [C ++ 11], [C ++ 14], [C ++ 17] hoặc [C ++ 20], v.v.


4
Gọi một hàm C từ mã C ++
Tôi có một hàm C mà tôi muốn gọi từ C ++. Tôi không thể sử dụng " extern "C" void foo()" loại phương pháp tiếp cận vì không thể biên dịch hàm C bằng g ++. Nhưng nó biên dịch tốt bằng cách sử dụng gcc. Bất kỳ ý …
90 c++  c  linux  extern-c 








8
Làm thế nào để sử dụng CCache với CMake?
Tôi muốn làm như sau: Nếu CCache có mặt trong PATH, hãy sử dụng "ccache g ++" để biên dịch, nếu không hãy sử dụng g ++. Tôi đã thử viết một tập lệnh my-cmake nhỏ chứa CC="ccache gcc" CXX="ccache g++" cmake $* nhưng nó dường như không hoạt động …
90 c++  unix  cmake  ccache 


6
Tôi có phải lấy khóa trước khi gọi condition_variable.notify_one () không?
Tôi hơi bối rối về việc sử dụng std::condition_variable. Tôi hiểu rằng tôi phải tạo một unique_locktrên mutextrước khi gọi condition_variable.wait(). Những gì tôi không thể tìm thấy là liệu tôi cũng nên có được một khóa duy nhất trước khi gọi notify_one()hoặc notify_all(). Các ví dụ trên cppreference.com là …


6
Bất kỳ lý do không sử dụng lambdas toàn cầu?
Chúng tôi có một chức năng sử dụng nội bộ lambda không bắt giữ cho chính nó, ví dụ: void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } Bây giờ chức năng được thực hiện …
89 c++  lambda 

5
Tại sao lambda có kích thước 1 byte?
Tôi đang làm việc với bộ nhớ của một số lambdas trong C ++, nhưng tôi hơi khó hiểu với kích thước của chúng. Đây là mã thử nghiệm của tôi: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; …
89 c++  c++11  lambda  c++14  sizeof 

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.