c++ ambiguous operator as static assert fails
12:22 16 Apr 2026

at compile time, one of the various similar errors are

In file included from fixed_test.cpp:1:
/path/to/file/fixed.hpp:59:9: note: candidate 1: ‘fixed fixed::operator+(T) [with T = fixed<-4>; long int t = -5]’
   59 |   fixed operator+(T a){arith;return a+(float)*this;}

where T is a templated typename and

#define arith static_assert(std::is_arithmetic::value,"bruh")

clearly, as a user defined type, std::is_arithmetic> is false but it is not being ignored for some reason so something is going on

c++ templates