康桓瑋*_*康桓瑋 6 c++ function-templates c++20 std-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();
}
Run Code Online (Sandbox Code Playgroud)
用GCC-trunk编译得到以下输出:
43
44
Run Code Online (Sandbox Code Playgroud)
为什么g()和f()产生不同的结果?我希望结果是一样的。为什么在模板实例化过程中单位偏移消失了?