Ruby 4.0.0dev (2025-12-19 revision 6f6ea70dcea1bbcb00774c1da58735a78c8924c2)
msvc.h
1#ifndef RBIMPL_COMPILER_IS_MSVC_H /*-*-C++-*-vi:se ft=cpp:*/
2#define RBIMPL_COMPILER_IS_MSVC_H
22#include "ruby/internal/compiler_is/clang.h"
23#include "ruby/internal/compiler_is/intel.h"
24
25#if ! defined(_MSC_VER)
26# define RBIMPL_COMPILER_IS_MSVC 0
27
28#elif RBIMPL_COMPILER_IS(Clang)
29# define RBIMPL_COMPILER_IS_MSVC 0
30
31#elif RBIMPL_COMPILER_IS(Intel)
32# define RBIMPL_COMPILER_IS_MSVC 0
33
34#elif _MSC_VER >= 1400
35# define RBIMPL_COMPILER_IS_MSVC 1
36# /* _MSC_FULL_VER = XXYYZZZZZ */
37# define RBIMPL_COMPILER_VERSION_MAJOR (_MSC_FULL_VER / 10000000)
38# define RBIMPL_COMPILER_VERSION_MINOR (_MSC_FULL_VER % 10000000 / 100000)
39# define RBIMPL_COMPILER_VERSION_PATCH (_MSC_FULL_VER % 100000)
40
41#else
42# error Unsupported MSVC version
43#endif
44
45#endif /* RBIMPL_COMPILER_IS_MSVC_H */