以下代码无法使用clang 5.0.0编译(编译标志为-std=c++14 -Wall -Wextra -Werror -pedantic-errors -O0
):
struct foo
{
};
int main()
{
foo f;
f.~decltype(f)(); // OK
f.template ~decltype(f)(); // OK
int i{};
i.~decltype(i)(); // OK
i.template ~decltype(i)(); // error: expected unqualified-id
}
template
这是一种强制编译带有关键字的伪析构函数调用的方法吗?