У меня есть шаблон, который выглядит следующим образом:перенести шаблон C++ 11 VARIADIC шаблон
template <typename T, typename ARG1, typename ARG2>
class Base
{
public:
Base(const std::shared_ptr<ARG1>& arg1, const std::shared_ptr<ARG2>& arg2)
: mArg1(arg1)
, mArg2(arg2)
{
}
struct Hasher
{
std::size_t operator()(const std::shared_ptr<T>& object) const
{
std::hash<std::shared_ptr<ARG1>> hash1;
auto seed = hash1(object->mArg1);
std::hash<std::shared_ptr<ARG2>> hash2;
boost::hash_combine(seed, hash2(object->mArg2));
return seed;
}
bool operator()(const std::shared_ptr<T>& object1,
const std::shared_ptr<T>& object2) const
{
return object1->mArg1 == object2->mArg1 && object1->mArg2 == object2->mArg2;
}
};
protected:
std::shared_ptr<ARG1> mArg1;
std::shared_ptr<ARG2> mArg2;
};
Я новичок в шаблоны с переменным числом C++ 11. Может кто-нибудь немного меня запомнит, как этот шаблон будет похож на поддержку N аргументов - если это возможно.
Использование 'кортежа ...>'. –