issues when compiling for 64-bit with Visual Studio 2017, e.g. cmake -G "Visual Studio 15 2017 Win64" -DOpenCV_DIR=<path_to_opencv_3.4.1>/build/x64/vc15/lib
MarkerMap:::insert as _code_id.insert(std::make_pair(code, id)); - this triggers an obscure error because of the type difference to the latest c++ between int and uint16_t - an explicit cast is at least needed, _code_id.insert(std::make_pair(code, (uint16_t)id));, or the signature of insert could be changed to require callers provide uint16_t.
also when building from a strict project with "treat warnings as errors" project, in markerdetector.h
aruco::MarkerDetector::_toStreamneeds to useuint32_t s=(uint32_t)strg.size();instead ofuint32_t s=strg.size();. that seems to be the only type conversion warning which blocks strict consumers of the API