Hacker News new | ask | show | jobs
by Thorrez 977 days ago
>Conversely, programmers probably add "inline" as an incantation all over the place not knowing that compilers often ignore it.

Funnily, the inline keyword actually has a use, but that use isn't to tell the compiler to inline a function. The use is to allow a function (or variable) to be defined in multiple translations units without being an ODR violation.

1 comments

MSVC treats inline as a hint [0] , GCC is ambiguous [1] but I read it as utilising the hint. My understanding of clang [2] is that it tries to match GCC, which would imply that it applies.

[0] https://learn.microsoft.com/en-us/cpp/build/reference/ob-inl...

[1] https://gcc.gnu.org/onlinedocs/gcc/Inline.html

[2] https://clang.llvm.org/compatibility.html

What the OP is saying is that it has a use to satisfy (https://en.cppreference.com/w/cpp/language/definition) and in that case it is not optional and not ignored by the compiler. Whether it will "actually" inline it is another matter, that is optional.