这个问题在这里已有答案:
3589
2017-10-21 00:48
起源
libstdc ++的变体可能使用了Clang不支持的非标准特性。它编译 -stdlib=libc++。 - chris
注意 std::get<0>(v), std::get<S1>(v)等等以基本相同的错误(以及更少的实例化步骤)失败。 - aschepler
实际上,错误的原因似乎是相同的,所以我们可以认为这是一个骗局。 - user2736667
答案:
这是众所周知的 错误33222 这似乎只影响libstdc ++ std::variant
(和使用相同组合的其他构造)。问题与模板的友元函数有关 - 请参阅线程以获取更多详细信息。
libc ++的变体似乎没有使用libstdc ++使用的朋友技术,因此您可能希望在此期间暂时更改为libc ++。
小更新:这已在最新的主干中修复。
11
2017-10-21 07:18
谢谢。它看起来像一个铿锵的bug。有没有人知道这个bug是否已经在clang dev分支中得到修复? - user2736667
@ user2736667截至目前,不,抱歉。我很确定这最终会得到修复,因为这非常严重。 - Rakete1111
@ user2736667小更新:这个bug终于修好了! :) - Rakete1111