Your best bet by a country mile is to switch off that warning for the duration of that inclusion if you get my meaning. Don't hack the vendor code.

Using explicit for multi-argument constructors makes perfect sense in C++11 onwards since it can be used to stop implicit brace initialisation. Futhermore the standard doesn't say that removing explicit must preserve the layout of the class, so you must assume that removing explicitcould break binary compatibility. Also, dropping it could change the behaviour of contrived SFINAE patterns as that constructor could become re-available in certain circumstances. See http://en.cppreference.com/w/cpp/language/sfinae.

Email codedump link for Is removing &#39;explicit&#39; from a constuctor binary compatible?