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.


3
Làm cách nào tôi có thể tạo một cách sản phẩm Cartesian của danh sách loại trong C ++?
Tự giải thích. Về cơ bản, giả sử tôi có danh sách loại như vậy: using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; Chúng có thể là số lượng của danh sách loại. Làm thế nào để tôi có được một kiểu chữ của …

4
So sánh vĩ mô if-directive
Tại sao #ifđiều kiện trong đoạn mã sau được đáp ứng: #include <iostream> #define VALUE foo int main() { #if VALUE == bar std::cout << "WORKS!" << std::endl; #endif // VALUE }



2
Chỉ định khởi tạo trong C ++ 20
Tôi đã có một câu hỏi về một trong các tính năng c ++ 20, các trình khởi tạo được chỉ định (thông tin thêm về tính năng này tại đây ) #include <iostream> constexpr unsigned DEFAULT_SALARY {10000}; struct Person { std::string name{}; std::string surname{}; unsigned age{}; }; struct Employee …

2
Liệu toán tử std :: unordered_map [] có khởi tạo không cho khóa không xuất hiện không?
Theo cppreference.com, std::map::operator[]đối với giá trị không tồn tại không khởi tạo bằng không. Tuy nhiên, cùng một trang web không đề cập đến việc khởi tạo bằng không std::unordered_map::operator[], ngoại trừ nó có một ví dụ dựa trên điều này. Tất nhiên đây chỉ là một trang web tham …


3
usecase cho tường minh (bool) là gì
C ++ 20 đã giới thiệu tường minh (bool) có điều kiện chọn tại thời điểm biên dịch cho dù một hàm tạo có được làm rõ hay không. Dưới đây là một ví dụ mà tôi tìm thấy ở đây . struct foo { // Specify non-integral types (strings, …
24 c++  c++20  explicit 


1
Tại sao `Dectype (static_cast <T> (Mạnh))` không phải luôn luôn là` T`?
Đối với mã sau đây, tất cả trừ xác nhận cuối cùng đều vượt qua: template&lt;typename T&gt; constexpr void assert_static_cast_identity() { using T_cast = decltype(static_cast&lt;T&gt;(std::declval&lt;T&gt;())); static_assert(std::is_same_v&lt;T_cast, T&gt;); } int main() { assert_static_cast_identity&lt;int&gt;(); assert_static_cast_identity&lt;int&amp;&gt;(); assert_static_cast_identity&lt;int&amp;&amp;&gt;(); // assert_static_cast_identity&lt;int(int)&gt;(); // illegal cast assert_static_cast_identity&lt;int (&amp;)(int)&gt;(); assert_static_cast_identity&lt;int (&amp;&amp;)(int)&gt;(); // static assert fails } Tại sao …
24 c++  static-cast 

2
Tại sao chức năng mẫu này không hoạt động như mong đợi?
Tôi đã đọc về các hàm mẫu và bị lẫn lộn bởi vấn đề này: #include &lt;iostream&gt; void f(int) { std::cout &lt;&lt; "f(int)\n"; } template&lt;typename T&gt; void g(T val) { std::cout &lt;&lt; typeid(val).name() &lt;&lt; " "; f(val); } void f(double) { std::cout &lt;&lt; "f(double)\n"; } template void g&lt;double&gt;(double); int main() …

3
Khái niệm C ++ 20: Chuyên môn hóa mẫu nào được chọn khi đối số mẫu đủ điều kiện cho nhiều khái niệm?
Được : #include &lt;concepts&gt; #include &lt;iostream&gt; template&lt;class T&gt; struct wrapper; template&lt;std::signed_integral T&gt; struct wrapper&lt;T&gt; { wrapper() = default; void print() { std::cout &lt;&lt; "signed_integral" &lt;&lt; std::endl; } }; template&lt;std::integral T&gt; struct wrapper&lt;T&gt; { wrapper() = default; void print() { std::cout &lt;&lt; "integral" &lt;&lt; std::endl; } }; int main() { wrapper&lt;int&gt; …



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.