APIdock / Ruby
/
method

have_struct_member

ruby latest stable - Class: Object

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (v1_9_3_392) is shown here.

have_struct_member(type, member, headers = nil, &b)
public

Returns whether or not the struct of type type contains member. If it does not, or the struct type can’t be found, then false is returned. You may optionally specify additional headers in which to look for the struct (in addition to the common header files).

If found, a macro is passed as a preprocessor constant to the compiler using the type name and the member name, in uppercase, prepended with ‘HAVE_’.

For example, if have_struct_member(‘struct foo’, ‘bar’) returned true, then the HAVE_STRUCT_FOO_BAR preprocessor macro would be passed to the compiler.

HAVE_ST_BAR is also defined for backward compatibility.

# File lib/mkmf.rb, line 1000
def have_struct_member(type, member, headers = nil, &b)
 checking_for checking_message("#{type}.#{member}", headers) do
 if try_compile(#{cpp_include(headers)}/*top*/#{MAIN_DOES_NOTHING}int s = (char *)&((#{type}*)0)->#{member} - (char *)0;, &b)
 $defs.push(format("-DHAVE_%s_%s", type.tr_cpp, member.tr_cpp))
 $defs.push(format("-DHAVE_ST_%s", member.tr_cpp)) # backward compatibility
 true
 else
 false
 end
 end
end

AltStyle によって変換されたページ (->オリジナル) /