Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to describe a subtype of some primitive type?

Consider the double primitive type. Let we declare function as the following:

void foo(double);

Is it possible to describe a user-defined type which can be passed to foo as parameter?


1 Answers

Of course, though not through actual inheritance but by simulating it with an implicit conversion:

#include <iostream>

struct MoreDouble
{
   operator double() { return 42.5; }
};

void foo(double x)
{
   std::cout << x << '\n';
}

int main()
{
   MoreDouble md;
   foo(md);
}

// Output: 42.5

(Live demo)

Whether this is a good idea is another question. I dislike implicit conversions in general so make sure you really need this before using it.

like image 85
Lightness Races in Orbit Avatar answered Dec 20 '25 19:12

Lightness Races in Orbit