[OpenIndiana-discuss] Compiling KeepassXC on Hipster

bentahyr at chez.com bentahyr at chez.com
Mon Dec 3 20:28:07 UTC 2018


Thanks Bob and Alexander, I think I start to understand.

grep digits ../../src/totp/totp.cpp
[...]
quint8 digits = encoder.digits == 0 ? numDigits : encoder.digits;
[...]

 From my 30 years old rusty knowledge of C++, this mean that digits is 
supposed to be a 'quint8' which is most probably QT version of the 'int' 
and as Bob noticed the pow function expects 'int', 'float', or 'double'

 From Alexander reference, I should have
quint32 digitsPower = pow(encoder.alphabet.size(), int(digits));

In that particular case it was 'encoder.alphabet.size()'  which appeared 
ambiguous, using 'double (encoder.alphabet.size())' made it. 'digits' 
was ok so far

Bottom line is I could compile and execute it, it is nice to have it 
native (works with wine).

Thanks both of you.
Best regards.
Ben

On 04/12/2018 03:21, Bob Friesenhahn wrote:

> On Mon, 3 Dec 2018, bentahyr at chez.com wrote:
> 
>> Hello,
>> 'static QString Totp::generateTotp(QByteArray, quint64, quint8, 
>> quint8)':
>> /home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call of 
>> overloaded 'pow(int, quint8&)' is ambiguous
>> quint32 digitsPower = pow(encoder.alphabet.size(), digits);
> 
> What is the declared storage type of the 'digits' argument?  From 
> reading the header, it appears that it must be of type 'int', 'float', 
> or 'double'.  Any other type would require a type transformation which 
> might be ambiguous.
> 
> Bob



More information about the openindiana-discuss mailing list