`vec_ptype2()`

defines the coercion hierarchy for a set of related
vector types. Along with `vec_cast()`

, this generic forms the
foundation of type coercions in vctrs.

`vec_ptype2()`

is relevant when you are implementing vctrs methods
for your class, but it should not usually be called directly. If
you need to find the common type of a set of inputs, call
`vec_ptype_common()`

instead. This function supports multiple
inputs and finalises the common type.

# S3 method for logical
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for integer
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for double
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for complex
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for character
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for raw
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for list
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")

## Arguments

x, y |
Vector types. |

... |
These dots are for future extensions and must be empty. |

x_arg, y_arg |
Argument names for `x` and `y` . These are used
in error messages to inform the user about the locations of
incompatible types (see `stop_incompatible_type()` ). |

## Implementing coercion methods

For an overview of how these generics work and their roles in vctrs,
see `?theory-faq-coercion`

.

For an example of implementing coercion methods for simple vectors,
see `?howto-faq-coercion`

.

For an example of implementing coercion methods for data frame
subclasses, see
`?howto-faq-coercion-data-frame`

.

For a tutorial about implementing vctrs classes from scratch, see
`vignette("s3-vector")`

.

## Dependencies

## See also