【发布时间】:2020-11-09 09:11:35
【问题描述】:
A、B、C 在f 定义的参数列表中的以下代码中的名称解析是否应该工作?
namespace ns
{
struct A {};
struct S
{
struct B {};
struct
{
struct C {};
void f(A, B, C);
} x;
};
}
#include <type_traits>
void std::type_identity_t<decltype(ns::S::x)>::f(A, B, C) {}
int main()
{
}
其实是works最新clang。
【问题讨论】:
-
我不确定我是否理解您的问题。您想详细说明哪一部分?
type_identity对名称查找的影响? -
是的。是否应该禁止在最后一个
::右侧进行名称解析。 -
我对别名模板一无所知。
-
此代码也适用于当前的 GCC。您是否要求提供关于为什么有效的标准报价?
标签: c++ namespaces c++17 language-lawyer c++20