package org.bytedeco.javacpp.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.bytedeco.javacpp.tools.Generator; /** * Indicates a type cast required on the argument to satisfy the native compiler. * When used with {@link Adapter} a second cast can also be specified making it * possible to apply a cast to both the argument and the adapter, in this order. * <p> * At the moment, {@link Generator} makes use of the simple C-style cast. If one * requires a different kind of type conversion, such as the {@code dynamic_cast} * operator, those can be accessed as if they were functions (with the {@link Name} * annotation to specify the type) because they have the same syntax. * * @see Generator * * @author Samuel Audet */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE}) public @interface Cast { String[] value(); }