#include <iostream>
#include <cmath>
#include <type_traits>
using namespace std;
class Dummy{
private:
double content;
public:
Dummy(double _content) :content{ _content } {};
operator long int() { return (long int)content; };
};
int main(){
Dummy a = Dummy(1.1);
double aa = fabs(static_cast<double>(a));
double (*fabs_ptr)(double) = fabs;
fabs_ptr(a);
using fabs_ptr2 = double (*)(double);
static_cast<fabs_ptr2>(fabs)(a);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIER1bW15ewpwcml2YXRlOgogICAgZG91YmxlIGNvbnRlbnQ7CnB1YmxpYzoKICAgIER1bW15KGRvdWJsZSBfY29udGVudCkgOmNvbnRlbnR7IF9jb250ZW50IH0ge307CiAgICBvcGVyYXRvciBsb25nIGludCgpIHsgcmV0dXJuIChsb25nIGludCljb250ZW50OyB9Owp9OwoKaW50IG1haW4oKXsKICAgIER1bW15IGEgPSBEdW1teSgxLjEpOwogICAgZG91YmxlIGFhID0gZmFicyhzdGF0aWNfY2FzdDxkb3VibGU+KGEpKTsKCiAgICBkb3VibGUgKCpmYWJzX3B0cikoZG91YmxlKSA9IGZhYnM7CiAgICBmYWJzX3B0cihhKTsKCiAgICB1c2luZyBmYWJzX3B0cjIgPSBkb3VibGUgKCopKGRvdWJsZSk7CiAgICBzdGF0aWNfY2FzdDxmYWJzX3B0cjI+KGZhYnMpKGEpOwoKICAgIHJldHVybiAwOwp9