13
Có thể chuyển đổi các loại gói tham số và truyền nó không?Có thể chuyển đổi các loại trong gói tham số không?
Ví dụ: trao như sau:
template<class... Args> struct X {};
template<class T> struct make_pointer { typedef T* type; };
template<class T> struct make_pointer<T*> { typedef T* type; };
Chúng ta có thể xác định một mẫu magic
hoặc một cái gì đó tương tự để các khẳng định sau đây giữ:
typedef magic<X, make_pointer, int, char>::type A;
typedef X<int*, char*> B;
static_assert(is_same<A, B>::value, ":(");
Ah, * §14.5 .3/5 * thậm chí bao gồm các ví dụ mà tôi bằng cách nào đó đã bỏ qua :) –