我可以强制使用可变参数模板来获取特定类型的参数

时间:2015-04-30 07:59:18

标签: c++ templates variadic-templates

在C ++模板中有一个名为显式模板参数规范的概念,这意味着我可以强制编译器创建给定类型的模板函数。 e.g。

template <class T1, class T2>

void foo(T1 t1prm, T2 t2prm) {
    /* function body */
}

foo<double, double>(1,2); 


我可以使用可变参数模板函数做类似的事情吗?我没有特定的用例。 Variadic模板对我来说是新的,我只是想了解新(对我而言)概念的功能。

1 个答案:

答案 0 :(得分:6)

f<int, int, double>

这里将被称为函数template<typename... Args> void f(const Args&... args) { using swallow = int[]; (void)swallow{0, (std::cout << typeid(args).name() << std::endl, 0)...}; }

您可以像这样检查

jQuery(function($) {
  var $template = $('#template').addClass('template');
  $('select').change(function() {
    //required number of copies
    var count = +this.value;
    var $templates = $('.template');
    //if there are more number copies remove them
    if ($templates.length > count) {
      $templates.slice(count).remove();
    } else {
      //add new copies if required
      for (var i = $templates.length; i < count; i++) {
        var $clone = $template.clone().insertAfter($templates.last());
        $clone.find('input').val('');
      }

    }
  })
})