[Debian-med-packaging] Bug#811866: fixed in hyphy 2.2.6+dfsg-4
Jakub Wilk
jwilk at debian.org
Sun Aug 14 20:10:38 UTC 2016
* Andreas Tille <andreas at an3as.eu>, 2016-08-13, 21:11:
>/build/hyphy-2.2.6+dfsg/src/gui/HYChartWindow.cpp:113:1: error: narrowing conversion of '3.0599999999999998e+1' from 'double' to 'unsigned char' inside { } [-Wnarrowing]
...
>
>Which is caused by:
>
>
>_HYColor chartColors [HY_CHART_COLOR_COUNT] = {
> {255*.94, 255*.12, 255*.11 },//(Red)
> {255*.41, 255*.46, 255*.91 },//(Evening Blue)
> {255 , 255*.91, 255*.34 },//(Banana)
> {255*.18, 255*.55, 255*.13 },//(Clover)
> {255*.55, 255*.38, 255*.21 },//(Dirt)
> {255*.42, 255*.09, 255*.69 },//(Royal Violet)
> {255*.09, 255*.29, 255*.51 },//(Sea Blue)
> {255 , 255*.57, 255*.09 },//(Orange)
> {255*.67, 255*.67, 255*.67 },//(Concrete)
> {255*.85, 255*.27, 255*.42 } //(Carnation)
>};
>
>
>the narrowing conversion in this case is absolutely intended here
>obviously. Is there any more elegant solution for these case than
>something like
>
> s:\.\([0-9][0-9]\):\1/100:g
>
>?
Your alternatives are:
- Use -Wno-narrowing to suppress this error.
- Define constructor for _HYColor and then use it.
- Make explicit typecasts from double to int.
Neither of them is particularly elegant...
Either way, you might want to define a temporary macro to make this less
repetitive, e.g.:
_HYColor chartColors [HY_CHART_COLOR_COUNT] = {
#define t(r, g, b) { 255 * r / 100, 255 * g / 100, 255 * b / 100 }
t(94, 12, 11), //(Red)
t(41, 46, 91), //(Evening Blue)
t(100, 91, 34), //(Banana)
// ...
#undef t
};
BTW, _HYColor is not a good name for a structure. In C++, identifiers
that begin with an underscore are reserved.
--
Jakub Wilk
More information about the Debian-med-packaging
mailing list