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

c++, primitive, types

Solution

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.

Problem

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?

Original source