4

パラメータを完全転送する方法を知っています。ただし、さまざまなソース (Effective Modern C++ Item 24 - Scott Meyers など) から、正確なテンプレート名がある場合にのみ完全転送できることを読みました。

template<typename T>
void foo(T&& param) { bar(std::forward<T>(param)); }

私が探しているのは、テンプレート テンプレート パラメータを完全転送する方法があるかどうかです。

template<template<int, class TypeT> class Vector, int Size, typename TypeT>
void foo(Vector<Size, TypeT>&& param) { bar(std::forward<Vector<Size, TypeT>>(param)); }

上記をコンパイルすると、「左辺値を右辺値参照にバインドすることはできません」(VC12) というエラー メッセージが表示されます。 . この完全な転送は、推測された TypeT と Size を利用できるので、私にとっては便利です。

質問: テンプレートのテンプレート パラメータを完全に転送することは可能ですか? もしそうなら、私の構文はどこが間違っていますか?

ありがとう!

4

1 に答える 1