小编che*_*jar的帖子

别名std模板函数

我需要别名std::get功能,以提高我的代码的可读性.

不幸的是我遇到了编译时错误get<0> in namespace ‘std’ does not name a type.using相当于typedef它需要使用类型.我用a std::tuple来表示一些数据类型:

using myFoo = std::tuple<int,int,double,string>;
using getNumber = std::get<0>;
Run Code Online (Sandbox Code Playgroud)

我看一些以前的问题,但提出的解决方案是包装和使用std::forward.我不想为每个成员编写这样的代码.

有没有办法只使用关键字解决这个问题?

c++ stdtuple c++17

8
推荐指数
1
解决办法
1252
查看次数

模板元编程:将一堆模板参数相乘

我需要在传递给模板化结构的编译时计算一堆数字的乘积.我成功地做出了一个丑陋的解决方案:

template<std::size_t n1, std::size_t ...args>
struct mul_all
{
    static constexpr std::size_t value = n1 * mul_all<args...>;
};
template<>
struct mul_all<0>
{
    static constexpr std::size_t value = 1;
};
Run Code Online (Sandbox Code Playgroud)


问题是,每次我必须将0模板args提供给我的结构,就像这样

int main()
{
    std::cout <<  mul_all<1,2,5,4,5,7,0>::value << " " 
              <<  mul_all<4,2,0>::value;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)


是否有任何解决方法来读取最后一个零?

注意:我是TMP的初学者.

c++ templates variadic template-meta-programming

6
推荐指数
2
解决办法
238
查看次数

d3.js和d3.express有什么区别

我知道d3.js是一个用于数据可视化的JavaScript框架,但我刚看到d3.js的开发人员宣布了d3.express,那有什么区别?

javascript d3.js

2
推荐指数
1
解决办法
2825
查看次数