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

Thẻ mẫu được sử dụng trong nhiều ngữ cảnh: lập trình chung (đặc biệt là C ++) và tạo dữ liệu / tài liệu bằng cách sử dụng các công cụ mẫu. Khi sử dụng thẻ này khi thực hiện các câu hỏi nặng - gắn thẻ ngôn ngữ mã, việc triển khai được viết bằng.



1
Clang có đúng để từ chối mã trong đó lớp lồng của mẫu lớp chỉ được xác định thông qua các chuyên ngành không?
Cho mẫu lớp sau: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; chúng tôi xác định Innerriêng cho từng chuyên ngành của Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner {}; và sau đó xác định hàm thành viên fmột lần cho tất cả các chuyên …

2
Mẫu quá tải mơ hồ
Tôi có mã templated sau đây #include <vector> #include <array> #include <iostream> template<typename T1> void foo(std::vector<T1> bar) { std::cout << "GENERIC" << std::endl; } template<typename T1> void foo(std::vector<std::vector<T1>> bar) { std::cout << "SPECIFIC (vector)" << std::endl; } template<typename T1, int SIZE> void foo(std::vector<std::array<T1, SIZE>> bar) { std::cout << "SPECIFIC (array)" …
16 c++  templates 




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 …

2
Điểm quan trọng để biết liệu một đối tượng là một tích phân hay không hoặc là một loại lớp hay không?
Xin chào, tôi đã thấy nhiều ví dụ như thế này trong Cppreference.com: std::is_class<T> std::is_integral Và như thế. Tôi biết nếu tôi chạy mã ví dụ tôi nhận được truehoặc false. Nhưng điểm trong đó là gì? vd: biết đối tượng có thuộc loại lớp hay không? #include <iostream> #include …
14 c++  templates 






1
Định nghĩa ngoài lớp C ++ 20 trong một lớp mẫu
Cho đến tiêu chuẩn C ++ 20 của C ++, khi chúng tôi muốn xác định toán tử ngoài lớp sử dụng một số thành viên riêng của lớp mẫu, chúng tôi sẽ sử dụng cấu trúc tương tự như sau: template <typename T> class Foo; template <typename T> constexpr …
12 c++  templates  c++20 

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.