Xcode: 错误:对于函数式的转换或类型构造,预期'('。

当我试图用xcode编译以下代码时,我遇到了这个错误。在Windows上用Visual Studio编译时没有问题。

template <typename OutT, typename MayaArrayT>
void DumpMayaArray(std::vector<OutT>& out, const MayaArrayT& source)
{
    using MayaElementT = decltype(MayaArrayT()[unsigned int()]); // error happens in this line!
    static_assert(std::is_same<MayaElementT, OutT&>::value, "array type mismatch");

这段代码要做的是,从MayaArrayT的返回类型中获取MayaArrayT元素的类型。::operator[]( unsigned int index ); 遗憾的是,没有其他方法来获取MayaArrayT的元素类型。

解决方案:

decltype中的代码实际上是调用了 MayaArrayT::operator(unsigned int). 然而,以下的论点 decltype 实际上并没有被评估,所以你需要做的是 假装 你在打电话,像这样。

using MayaElementT = decltype(
        std::declval<MayaArrayT&>()[std::declval<unsigned int>()]
      ); 

给TA打赏
共{{data.count}}人
人已打赏
解决方案

更新声明以增加列值

2022-4-22 6:00:08

解决方案

材料UI。在React类组件中使用主题

2022-4-22 6:00:10

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索