Files
ViewDesignEngine/docs/feedback/VDE-016.md
T
hm 006dd3f136
CI / Build & Test (push) Failing after 42s
CI / Release Build (push) Failing after 38s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
docs: update VDE-016 — v1.0.3 fix insufficient, need fully qualified names
2026-07-28 00:09:51 +08:00

2.0 KiB
Raw Blame History

id, status, severity, category, date, updated, reporter, related
id status severity category date updated reporter related
VDE-016 open critical bug 2026-07-27 2026-07-27 ViewDesign VDE-001, VDE-005, VDE-010

VDE-016: ssi_boolean.cpp SSICurveData 名称解析失败

问题描述

v1.0.3 尝试将 SSICurveData 移出匿名 namespace、添加 #include <iterator>using vde::brep::ClassResult;,但 仍无法通过 GCC 编译

GCC 错误提示 did you mean 'vde::brep::ClassResult'? 说明符号可见但非限定名查找失败 — 可能是文件中多处匿名 namespace 嵌套导致的 scope 混淆。

当前编译错误 (v1.0.3)

error: 'SSICurveData' was not declared (did you mean 'vde::brep::SSICurveData'?)
       at: compute_all_ssi() return type, build_face_cutting_planes() parameter
error: 'begin' was not declared in this scope  (even with #include <iterator>)
error: 'end' was not declared in this scope
error: 'ClassResult' was not declared (did you mean 'vde::brep::ClassResult'?)
       at: classify_points() return type

分析

  1. SSICurveData 的 forward declaration 和定义在 vde::brep 命名空间内正确,但 GCC 仍需要全限定名 vde::brep::SSICurveData — 可能是文件中多个匿名 namespace 导致对作用域的理解与 MSVC 不同
  2. begin/end#include <iterator> 已添加,仍报错 — 可能是 SSICurveData 错误导致的级联失败
  3. ClassResultusing vde::brep::ClassResult;namespace vde::brep 内部冗余,无效 — 需直接使用全限定名

建议修复方式

将文件中出错的非限定符号改为全限定名:

// Line 509:
vde::brep::SSICurveData  // 替代 SSICurveData

// Line 612:
const std::vector<vde::brep::SSICurveData>&  // 替代 SSICurveData

// Line 643:
vde::brep::ClassResult  // 替代 ClassResult

或在 namespace vde::brep 作用域内、匿名 namespace 之前添加局部 using

// 在所有匿名 namespace 之前
using vde::brep::SSICurveData;
using vde::brep::ClassResult;

当前 Workaround

ViewDesign 排除 vde_brep 及其依赖。