https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89299
--- Comment #3 from paradox_ptr at protonmail dot ch --- > Well you didn't instantiate it. 'cu' is not a function, it's a template. Sure. There is not enough information for the compiler to deduce the type without <>. > IMHO it's completely unnecessary to use this extension in C++ anyway Fair enough. However I feel like error message is plain incorrect for cleanup(cu<char>).