C++20std::source_location在自由函数和模板函数之间产生不同的列号

考虑模板函数g()和自由函数f()

#include <iostream>
#include <source_location>

auto g(auto...) {
std::cout << std::source_location::current().column() << "n";
}

auto f() {
std::cout << std::source_location::current().column() << "n";
}

int main() {
g();
f();
}

用GCC-trunk编译得到以下输出:

43
44

为什么g()f()产生不同的结果?我希望结果是一样的。为什么在模板实例化过程中单位偏移消失了?

以上是C++20std::source_location在自由函数和模板函数之间产生不同的列号的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>