Jacek Caban (@jacek) commented about include/specstrings_strict.h:
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
+#ifndef __SPECSTRINGS_STRICT_LEVEL +#define __SPECSTRINGS_STRICT_LEVEL 1 +#endif
+#if (_MSC_VER >= 1400) && !defined(__midl) && !defined(__WIDL__) && (__SPECSTRINGS_STRICT_LEVEL > 0)
This _MSC_VER check is not really optimal. Since you define those macros to nothing, there is no need for features checks and we want as many of them as possible to be available on other targets.
The problematic part thing about __in/__out is that GCC's libstdc++, which still uses those as variable names. I guess we could guard only those problematic macros with _MSC_VER.