Как мне сделать класс, интерфейс которого соответствует double, но чьи шаблонные типы не динамически приводят к удвоению?
Причина в том, что у меня есть система типов времени выполнения, и я хочу иметь возможность иметь тип, который работает так же, как double:
template<int min_value, int max_value>
class BoundedDouble: public double {};
А затем используйте специализацию шаблона, чтобы получить информацию об этом типе во время выполнения:
template<typename T>
class Type { etc. }
template<int min_value, int max_value>
class Type<BoundedDouble<min_value, max_value>> { int min() const { return min_value; } etc. }
Но вы не можете наследовать от двойного ...