TGViewer
C++ - Reddit C++ - Reddit @r_cpp · 228 subscribers
Post #24089 27
source_location::file_name is a misleading name

I think this is not suitably emphasized in cppreference...

source_location::file_name() is basically __FILE__ instead of __FILE_NAME__ (clang/gcc), which can be absolute path by default... This means if used without care, it may inject absolute path into release build. (Due to its name and c++-ish style, I doubt it's more likely to be abused than __FILE__.)

https://godbolt.org/z/e149Tqv4Y

#include<sourcelocation>
#include<filesystem>
#include<string
view>
#include<cstdio>

int main() {
constexpr std::stringview filename = std::sourcelocation::current().filename();
staticassert(filename == FILE);
if (std::filesystem::path(filename).isabsolute()) {
puts(":(");
}
}

https://redd.it/1odzc93
@r_cpp
godbolt.org Compiler Explorer - C++ int main() { constexpr std::string_view file_name = std::source_location::current().file_name(); static_assert(file_name == __FILE__); if (std::filesystem::path(file_name).is_absolute()) { puts(":("); } }
More from @r_cpp
  1. Oct 14, 2026I tested whether a coding agent would use C++23 ranges without being told Blog post: https…
  2. Oct 14, 2026C++ futures part 1: The mental model https://devblogs.microsoft.com/oldnewthing/20261012-0…
  3. Oct 14, 2026C++ futures part 2: The mental model for std::promise, std::packaged_task https://devblogs…
  4. Oct 12, 2026[Release] slick-logger v2.2.0 — Lock-free asynchronous C++20 logging with multi-process sh…
  5. Oct 12, 2026Cheap alternative to reboot parameters (nohz, rcu, isolcpus) for stable benchmarks When no…
  6. Oct 12, 2026This C++ drama is crazy - Adobe votes no https://www.youtube.com/watch?v=DEqx_NMMH9Q https…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →