Kompatybilność zestawu narzędzi vs2012

W moim VS2012 mam 4 zestawy narzędzi: v90, v100, v110 i v110_xp. Wykonałem prosty test z dwoma projektami testlib (biblioteka statyczna) i testexe (aplikacja konsolowa). Interfejs był tylko jedną funkcją z podpisemvoid test(). Wyniki:

testlib (v90), testexe (wszystko inne niż v90) -> nie łączytestlib (v100), testexe (v110 lub v110_xp) -> nie łączy

Wydawało mi się jednak dziwne, że v100 i v110 będą się łączyć, więc spróbowałem trochę skomplikować scenariusz. Teraz moja metoda wygląda tak:std::map<std::string, std::string> test(const std::string& arg). Zgodnie z oczekiwaniami testlib (v100) i testexe (v110) nie łączą się (mismatch detected for '_MSC_VER').

Jednak nadal testlib (v110) i testexe (v110_xp) wykonują łącze, a wynikowy exe działa w systemie Windows XP. Czy to przypadek, czy jest to obsługiwany scenariusz? Jeśli przypadkiem jest to przykładowy kod, który używa tylko funkcji dostępnych w wersji v110_xp i łamie tę zgodność, byłoby mile widziane. Zastanawiam się, czy powinienem wdrożyć dwie wersje mojej biblioteki na moich klientach, czy tylko ta skompilowana za pomocą v110.

questionAnswers(3)

yourAnswerToTheQuestion