Not me - it's the compiler!
1> ]
1>d:\test\consoletestvs2017\consoletestvs2017\main.cpp(55): note: No
user-defined-conversion operator available that can perform this
conversion, or the operator cannot be called
1>d:\test\consoletestvs2017\consoletestvs2017\main.cpp(51): note: while
compiling class template member function 'void
Transformer<Monkey>::operator ()(const std::array<uint8_t,16>
&,std::array<uint8_t,16> &) const'
1>d:\test\consoletestvs2017\consoletestvs2017\main.cpp(75): note: see
reference to class template instantiation 'Transformer<Monkey>' being
compiled
1>d:\test\consoletestvs2017\consoletestvs2017\main.cpp(57): error C2664:
'void Monkey::Decryption::ProcessAndXorBlock(const uint8_t *,const
uint8_t *,uint8_t *) const': cannot convert argument 1 from
'std::_Array_const_iterator<_Ty,16>' to 'const uint8_t *'
1> with
1> [
1> _Ty=uint8_t
1> ]
1>d:\test\consoletestvs2017\consoletestvs2017\main.cpp(57): note: No
user-defined-conversion operator available that can perform this
conversion, or the operator cannot be called