mirror of
https://github.com/apple/swift.git
synced 2026-11-01 23:11:50 +01:00
50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <utility>
|
|
#include <string>
|
|
|
|
using PairInts = std::pair<int, int>;
|
|
using PairStrings = std::pair<std::string, std::string>;
|
|
|
|
inline const PairInts &getIntPairPointer() {
|
|
static PairInts value = { 4, 9 };
|
|
return value;
|
|
}
|
|
|
|
inline PairInts getIntPair() {
|
|
return { -5, 12 };
|
|
}
|
|
|
|
struct StructInPair {
|
|
int x;
|
|
int y;
|
|
};
|
|
|
|
using PairStructInt = std::pair<StructInPair, int>;
|
|
|
|
inline PairStructInt getPairStructInt(int x) {
|
|
return { { x * 2, -x}, x };
|
|
}
|
|
|
|
struct UnsafeStruct {
|
|
int *ptr;
|
|
};
|
|
|
|
struct __attribute__((swift_attr("import_iterator"))) Iterator {};
|
|
|
|
using PairUnsafeStructInt = std::pair<UnsafeStruct, int>;
|
|
using PairIteratorInt = std::pair<Iterator, int>;
|
|
|
|
struct __attribute__((swift_attr("import_owned"))) HasMethodThatReturnsUnsafePair {
|
|
PairUnsafeStructInt getUnsafePair() const { return {}; }
|
|
PairIteratorInt getIteratorPair() const { return {}; }
|
|
};
|
|
|
|
struct __attribute__((swift_attr("~Copyable"))) NonCopyable {
|
|
int field;
|
|
};
|
|
|
|
using NonCopyableFirst = std::pair<NonCopyable, int>;
|
|
using NonCopyableSecond = std::pair<int, NonCopyable>;
|
|
using NonCopyableBoth = std::pair<NonCopyable, NonCopyable>;
|