In this example, `coord_squared_t` is the alias for an integer type with at least twice the size of the integer type `coord_t`:

```
typedef int_least32_t coord_t;

coord_squared_t CalculateSquaredHypothenuse(coord_t x, coord_t y){
    coord_squared_t _x=x;
    coord_squared_t _y=y;
    return _x*_x+_y*_y;
}

```

What could be used to express `coord_squared_t` in terms of `coord_t`? Is there anything in the standard library that allows me to do something like `double_width<coord_t>::type` to get the correct width, instead of explicitly choosing the type?

C++11 or C++14 are fine.