What is ** in C++?

It's a now deprecated g++ extension to the c++ language.

a <? b is the minimum, returning the smaller of the numeric values a and b;

a >? b is the maximum, returning the larger of the numeric values a and b.

There are also compound versions

<?=

and

>?=

that do assignment as well.


It's simply not valid C++. < Might be less than, an open angle bracket for a template argument list, or the start of a digraph however non of those can be followed by ?, then =.


It's a gcc extension: C extension: <? and >? operators

Recent manuals say:

The G++ minimum and maximum operators (‘<?’ and ‘>?’) and their compound forms (‘<?=’) and ‘>?=’) have been deprecated and are now removed from G++. Code using these operators should be modified to use std::min and std::max instead...