首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++11界方法签名简化

C++11界方法签名简化
EN

Stack Overflow用户
提问于 2016-11-18 10:26:34
回答 1查看 80关注 0票数 1

鉴于这一守则:

代码语言:javascript
复制
#include <iostream>
#include <functional>

template<typename T>
void f(T t1, T t2) { std::cout << t1 << " " << t2 << std::endl; }

template<typename...Ts>
void g(Ts... ts) { f(ts...); }

int main() {
    auto f = std::bind(g<int, int>, 1, 2);
    f();
    return 0;
}

有没有办法跳过gstd::bind(g<int, int>, 1, 2)中的模板类型规范?

如果没有,至少可以只指定一次类型吗?即std::bind(g<int>, 1, 2)

这是一个活版

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-18 10:32:33

我不确定是否可以使用bind,但是您可以使用lambda获得相同的功能,并且不需要显式的模板params:

代码语言:javascript
复制
auto f = []{
    g(1, 2);
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40674664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档