---
name: "ExtUtils::XSpp::Node::Argument"
section: "3pm"
platform: "linux"
package: "libextutils-xspp-perl"
version: "0.1800-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ExtUtils::XSpp::Node::Argument"
---

# ExtUtils::XSpp::Node::Argument(3pm)

Node representing a method/function argument

## NAME

ExtUtils::XSpp::Node::Argument - Node representing a method/function argument

## DESCRIPTION

An ExtUtils::XSpp::Node subclass representing a single function or method argument such as

```
  int foo = 0.
```

which would translate to an `"ExtUtils::XSpp::Node::Argument"` which has its `"type"` set to `"int"`, its `"name"` set to `"foo"` and its `"default"` set to `0.`.

## METHODS

### new

Creates a new `"ExtUtils::XSpp::Node::Argument"`.

Named parameters: `"type"` indicating the C++ argument type, `"name"` indicating the variable name, and optionally `"default"` indicating the default value of the argument.

### uses\_length

Returns true if the argument uses the XS length feature, false otherwise.

### implementation\_name

Returns the same as the `"name"` method unless the argument is of the `"%length(something)"` variant. In that case, `"implementation_name"` returns a munged version of the name that addresses the name mangling done by *xsubpp*: `"XSauto_length_of_somthing"`.

### fix\_name\_in\_code

Given a code string, replaces any occurrances of the name of this `"Argument"` with its implementation name. If the implementation name is the same as the name, which is the most likely case, the code remains completely untouched.

Returns the potentially modified code.

## ACCESSORS

### type

Returns the type of the argument.

### name

Returns the variable name of the argument variable.

### default

Returns the default for the function parameter if any.

### has\_default

Returns whether there is a default for the function parameter.

### function

Returns a reference to the containing function/method.

### index

Returns the 0-based index of the argument in the argument list.
