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

27
Kiểm tra tạm thời cho sự tồn tại của một chức năng thành viên lớp?
Có thể viết một mẫu thay đổi hành vi tùy thuộc vào việc một hàm thành viên nhất định được xác định trên một lớp không? Đây là một ví dụ đơn giản về những gì tôi muốn viết: template<class T> std::string optionalToString(T* obj) { if (FUNCTION_EXISTS(T->toString)) return obj->toString(); else …



2
Làm thế nào để `void_t` hoạt động
Tôi đã xem cuộc nói chuyện của Walter Brown tại Cppcon14 về lập trình mẫu hiện đại ( Phần I , Phần II ) nơi anh ấy trình bày void_tkỹ thuật SFINAE của mình . Ví dụ: Đưa ra một mẫu biến đơn giản để ước tính voidnếu tất cả …
148 c++  templates  c++14  sfinae 


9
Ví dụ về C ++ SFINAE?
Tôi muốn tham gia vào lập trình siêu mẫu nhiều hơn. Tôi biết rằng SFINAE là viết tắt của "thay người thất bại không phải là một lỗi." Nhưng ai đó có thể chỉ cho tôi cách sử dụng SFINAE tốt không?

2
Std :: is_feft được triển khai như thế nào?
Làm thế nào sau đây là một thực hiện cho std::is_function? template<class T> struct is_function : std::integral_constant< bool, !std::is_const<const T>::value && !std::is_reference<T>::value > {}; (từ Tài liệu tham khảo CPP ) Dường như với tôi, một intsẽ là một chức năng theo định nghĩa này. Tôi đang thiếu gì?
82 c++  templates  std  sfinae 

2
Phương pháp tiếp cận chức năng SFINAE trong C ++
Tôi đang sử dụng chức năng SFINAE rất nhiều trong một dự án và không chắc có sự khác biệt nào giữa hai cách tiếp cận sau (ngoài phong cách) không: #include <cstdlib> #include <type_traits> #include <iostream> template <class T, class = std::enable_if_t<std::is_same_v<T, int>>> void foo() { std::cout << "method …
40 c++  sfinae 

2
Tại sao một chuyên môn mẫu một phần trên một lớp mẫu phù hợp mơ hồ với một chuyên môn một phần khác mà không phù hợp với mẫu?
Câu hỏi có thể quá khó để mô tả trong câu trong tiêu đề, nhưng đây là một ví dụ tối thiểu: #include <iostream> #include <type_traits> template <class T, class U, class Enabler> struct my_trait : std::false_type {}; template <class T, class U> struct my_trait<T, U, std::enable_if_t<std::is_same<T, U>::value>> : std::true_type …
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.