8
는 예를 고려 안내 보장 :는 그 템플릿 템플릿 매개 변수 호출 사용자가 제공 공제
#include <type_traits>
#include <string>
template <template <class> class TT> //#1
struct Foo {
static void foo() {
static_assert(std::is_same_v<decltype(TT("abc")), TT<std::string>>);
}
};
template <class T>
struct Bar {
Bar(T) {}
};
template <class T>
Bar(T) -> Bar<std::string>; //#2
int main() {
Foo<Bar>::foo();
}
[clang]뿐만 아니라 [gcc] 모두 사용자가 제공 공제 가이드를 사용하는 것을 (# 2) 템플릿의 템플릿 매개 변수를 추론 할 때 템플릿 매개 변수 (# 1). 표준 준수 기능입니까?
사실 내가 그 대답을 기대했는데, 잘못 되었다면 ... 그럼 다시 받아 들일 것입니다.) –
: 약간의 질문으로 자동 공제 가이드가 적용되어서는 안되는가? –
@ W.F. 좋아, 나는 완전히 대답을 뒤집 었어. – Barry