---
title: "interoperabilityMode(_:_:)"
framework: packagedescription
role: symbol
role_heading: Type Method
path: "packagedescription/swiftsetting/interoperabilitymode(_:_:)"
---

# interoperabilityMode(_:_:)

Enables Swift interoperability with a given language.

## Declaration

```swift
static func interoperabilityMode(_ mode: SwiftSetting.InteroperabilityMode, _ condition: BuildSettingCondition? = nil) -> SwiftSetting
```

## Parameters

- `mode`: The interoperability mode, either C-compatible or C++-compatible.
- `condition`: A condition that restricts the application of the build setting.

## Discussion

Discussion This is useful for enabling interoperability between Swift and C++ for a given target. Enabling C++ interoperability mode might alter the way some existing C and Objective-C APIs are imported. note: First available in PackageDescription 5.9.

## See Also

### Configuring Swift Settings

- [define(_:_:)](packagedescription/swiftsetting/define(_:_:).md)
- [unsafeFlags(_:_:)](packagedescription/swiftsetting/unsafeflags(_:_:).md)
- [strictMemorySafety(_:)](packagedescription/swiftsetting/strictmemorysafety(_:).md)
- [swiftLanguageMode(_:_:)](packagedescription/swiftsetting/swiftlanguagemode(_:_:).md)
- [defaultIsolation(_:_:)](packagedescription/swiftsetting/defaultisolation(_:_:).md)
- [enableExperimentalFeature(_:_:)](packagedescription/swiftsetting/enableexperimentalfeature(_:_:).md)
- [enableUpcomingFeature(_:_:)](packagedescription/swiftsetting/enableupcomingfeature(_:_:).md)
- [SwiftSetting.InteroperabilityMode](packagedescription/swiftsetting/interoperabilitymode.md)
- [swiftLanguageVersion(_:_:)](packagedescription/swiftsetting/swiftlanguageversion(_:_:).md)
