이의 우리는 사용자 정의 공제 가이드와 함께이 같은 클래스가 있다고 가정 해 봅시다 안내합니다. 추론 된 템플릿 인수는 무엇이고 어떤 생성자는 호출 될 것입니까? 일부 실험이 끝나면 컴파일러에 따라 다릅니다. 즉, GCC (7) (트렁크) 연타 6 그러므로 출력 Args and T: Foo<T, Args>::Foo(Args&& ..., T&&) [with
공제 가이드가 범용 참조 및 std::forward과 함께 작동하는 방법, 특히 완벽하게 전달하는 래퍼를 만드는 방법을 알고 싶습니다. 아래의 코드는 펑터 래퍼 (implator)가있는 경우와 명시 적 공제 가이드가있는 경우의 두 가지 경우에서 펑터 래퍼 (functor wrapper)를 실험 할 수있는 코드를 제공합니다. 완벽한 전달을 위해 어디에 필요한
는 예를 생각해 template <class T>
struct tag {
tag(T) {}
};
int main() {
tag(int{}); //#1
auto t1 = tag(int{}); //#2
auto t3 = (tag(int{})); //#3
}
tag는 클래스 템플릿 인수의 공제에 참여해야
는 예를 고려 안내 보장 : #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<