gpt4 book ai didi

c++ - 获取 C2760 语法错误:意外标记 'int',std::max(...) 预期为 'expression'

转载 作者:行者123 更新时间:2023-11-28 01:25:23 25 4
gpt4 key购买 nike

<分区>

我正在尝试为 MathGeoLib 构建一个带有 C 导出的 DLL从 C# 使用的库。

到目前为止我写的代码:

#include "stdafx.h"
#include "MathGeoLib/MathGeoLib.h"

OBB* OptimalEnclosingOBB(const vec* pointArray, int numPoints)
{
const auto obb1 = OBB::OptimalEnclosingOBB(pointArray, numPoints);
const auto obb2 = new OBB(obb1);
return obb2;
}

stdafx.h 文件:

#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
// Windows Header Files
#include <windows.h>

但是当我编译时,我得到 the following error即使我定义了 NOMINMAX:

1>c:\build\mathgeolib\include\mathgeolib\geometry\quadtree.inl(699): error C2760: syntax error: unexpected token 'int', expected 'expression'

这是 Visual Studio 2017 令人窒息的行:

https://github.com/juj/MathGeoLib/blob/master/src/Geometry/QuadTree.inl#L699

template<typename T>
int QuadTree<T>::NumNodes() const
{
return std::max<int>(0, nodes.size() - 3); // The nodes rootNodeIndex+1, rootNodeIndex+2 and rootNodeIndex+3 are dummy unused, since the root node is not a quadrant.
}

问题:

如何修复此错误?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com