错误C2440和仿函数

时间:2013-10-22 08:21:00

标签: c++ visual-studio-2010 visual-c++

也许你会知道,我收到了一个错误:

 error C2440: 'initializing' : cannot convert from 'int' 
              Conversion from integral type to pointer type requires reinterpret_cast

它转到'MS VS 2010文件夹中的文件:

template<class _Other1,
        class _Other2>
        _Pair_base(_Other1&& _Val1, _Other2&& _Val2)
        : first(_STD forward<_Other1>(_Val1)),
            second(_STD forward<_Other2>(_Val2))
        {   // construct from moved values
        }

我一直在寻找不同的解决方案但找不到正确的解决方案。

1 个答案:

答案 0 :(得分:1)

错误说

'initializing' : cannot convert from 'int' to 'EnterFunctor *'

您共享代码的唯一部分是

functors.push_back(make_pair(sessionStartFunc, 
    pair<EnterFunctor*, ExitFunctor*>(NULL,sessionStartExit)));

如果NULL #defined为0,则会给你一个int,但你答应了pair个指针,所以当错误的下一行表示你可以使用强制转换为使NULL成为正确的指针类型。