Ruby 4.0.5p0 (2026-05-20 revision 64336ffd0ee9e1f4c05891695a3d7b49cb709721)
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 */