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.



2
Là std :: chrono :: năm lưu trữ thực sự ít nhất 17 bit?
Từ cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Sử dụng libc++, có vẻ như việc lưu trữ nhấn mạnh của std::chrono::yearslà shortcó chữ ký 16 bit . std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB Có …
14 c++  chrono  c++20  libc++ 


3
Sắp xếp một vectơ theo thứ tự giảm dần trong hai phạm vi
Nói rằng tôi có một vectơ số nguyên: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Sau đó, tôi sắp xếp nó theo thứ tự giảm dần: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); Điều này tạo ra như …

1
Clang không biên dịch mã nhưng gcc và msvc đã biên dịch nó
Tôi không hiểu vấn đề là gì: trong mã của tôi hoặc trong trình biên dịch (ít có thể hơn). Có một đoạn mã như thế này: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type …




1
Tôi có thể liệt kê khởi tạo std :: vector với chuyển tiếp hoàn hảo các phần tử không?
Tôi nhận thấy rằng danh sách tổng hợp initalization của std :: vector thực hiện khởi tạo bản sao khi di chuyển được áp dụng nhiều hơn. Đồng thời, nhiều emplace_backs làm những gì tôi muốn. Tôi chỉ có thể đưa ra giải pháp không hoàn hảo này bằng cách …




1
nếu constexpr - tại sao câu lệnh bị loại bỏ hoàn toàn được kiểm tra?
Tôi đã loay hoay với c ++ 20 consteval trong GCC 10 và đã viết mã này #include <optional> #include <tuple> #include <iostream> template <std::size_t N, typename Predicate, typename Tuple> consteval std::optional<std::size_t> find_if_impl(Predicate&& pred, Tuple&& t) noexcept { constexpr std::size_t I = std::tuple_size_v<std::decay_t<decltype(t)>> - N; if constexpr (N == 0u) …

2
Làm thế nào để ném và bắt ints hoạt động?
Với mã này: int main() { try { throw -1; } catch (int& x) { std::cerr << "We caught an int exception with value: " << x << std::endl; } std::cout << "Continuing on our merry way." << std::endl; return 0; } Chúng ta có: /tmp$ ./prorgam.out Continuing on our …

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.