https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66918
Federico Kircheis <federico.kircheis at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |federico.kircheis at gmail dot
com
--- Comment #9 from Federico Kircheis <federico.kircheis at gmail dot com> ---
Hello,
I stumbled on this warning too, and would really like to disable it.
Having a defined but not implemented function can help to detect errors at
compile time since c++11, for example consider
----
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wundefined-inline"
constexpr int stop_compilation();
#pragma GCC diagnostic pop
constexpr int foo(int i){
return is_not_valid(i) ? stop_compilation() : i+42;
}
----
thanks to `stop_compilation()`, we force the user to use foo in a constexpr
context, and we can validate the parameter.
The code works as intended with GCC, MSVC and clang(!).
Rewriting the code as
----
constexpr int foo(int i){
return is_not_valid(i) ? throw 42 : i+42;
}
----
makes `foo` usable in a non-constexpr context.
In clang it is possible to ignore the warning with "-Wundefined-inline", maybe
GCC could adopt the same switch?