相关疑难解决方法(0)

人们使用身份功能做什么?

例如,Haskell具有id功能,Julia具有该identity功能,并且SO上的许多问题处理身份功能.(我想在Python中你可以这样做lambda x:x)

我一直在试图想到这个功能的用例; 我失败了

身份功能的目的是什么,它的常见用例是什么?

haskell functional-programming julia

15
推荐指数
4
解决办法
3348
查看次数

只返回传递值的默认函数?

作为一个懒惰的开发人员,我喜欢使用这个技巧来指定一个默认函数:

template <class Type, unsigned int Size, class Function = std::less<Type> >
void arrange(std::array<Type, Size> &x, Function&& f = Function())
{
    std::sort(std::begin(x), std::end(x), f);
}
Run Code Online (Sandbox Code Playgroud)

但是在一个非常特殊的情况下我遇到了一个问题,如下所示:

template <class Type, unsigned int Size, class Function = /*SOMETHING 1*/>
void index(std::array<Type, Size> &x, Function&& f = /*SOMETHING 2*/)
{
    for (unsigned int i = 0; i < Size; ++i) {
        x[i] = f(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望默认函数相当于:( [](const unsigned int i){return i;}一个只返回传递值的函数).

为了做到这一点,我需要写什么而不是/*SOMETHING 1*//*SOMETHING 2*/

c++ lambda templates c++11 std-function

13
推荐指数
1
解决办法
5250
查看次数

有没有理由在标准库中没有std :: identity?

在C++中处理泛型代码时,我会发现一个非常有用的仿std::identity函数(如std::negate).有没有特殊原因导致标准库中没有这个?

c++ identity function negate c++11

7
推荐指数
1
解决办法
1016
查看次数