## Operator: <

``` operator < { associativity precedence }```

### Declarations

func <(_: (), rhs: ())

Returns a Boolean value indicating whether the first tuple is ordered before the second in a lexicographical ordering.

An arity zero tuple is never strictly before another arity zero tuple in a lexicographical ordering.

Parameters: lhs: An empty tuple. rhs: An empty tuple.

#### Declaration

`func <(lhs: (), rhs: ()) -> Bool`
func < <A, B, C, D, E, F>(_: (A, B, C, D, E, F), rhs: (A, B, C, D, E, F))

Returns a Boolean value indicating whether the first tuple is ordered before the second in a lexicographical ordering.

Given two tuples `(a1, a2, ..., aN)` and `(b1, b2, ..., bN)`, the first tuple is before the second tuple if and only if `a1 < b1` or (`a1 == b1` and `(a2, ..., aN) < (b2, ..., bN)`).

Parameters: lhs: A tuple of `Comparable` elements. rhs: Another tuple of elements of the same type as `lhs`.

#### Declaration

`func <<A, B, C, D, E, F>(lhs: (A, B, C, D, E, F), rhs: (A, B, C, D, E, F)) -> Bool where A : Comparable, B : Comparable, C : Comparable, D : Comparable, E : Comparable, F : Comparable`
func < <A, B, C, D, E>(_: (A, B, C, D, E), rhs: (A, B, C, D, E))

Returns a Boolean value indicating whether the first tuple is ordered before the second in a lexicographical ordering.

Given two tuples `(a1, a2, ..., aN)` and `(b1, b2, ..., bN)`, the first tuple is before the second tuple if and only if `a1 < b1` or (`a1 == b1` and `(a2, ..., aN) < (b2, ..., bN)`).

Parameters: lhs: A tuple of `Comparable` elements. rhs: Another tuple of elements of the same type as `lhs`.

#### Declaration

`func <<A, B, C, D, E>(lhs: (A, B, C, D, E), rhs: (A, B, C, D, E)) -> Bool where A : Comparable, B : Comparable, C : Comparable, D : Comparable, E : Comparable`
func < <A, B, C, D>(_: (A, B, C, D), rhs: (A, B, C, D))

Returns a Boolean value indicating whether the first tuple is ordered before the second in a lexicographical ordering.

Given two tuples `(a1, a2, ..., aN)` and `(b1, b2, ..., bN)`, the first tuple is before the second tuple if and only if `a1 < b1` or (`a1 == b1` and `(a2, ..., aN) < (b2, ..., bN)`).

Parameters: lhs: A tuple of `Comparable` elements. rhs: Another tuple of elements of the same type as `lhs`.

#### Declaration

`func <<A, B, C, D>(lhs: (A, B, C, D), rhs: (A, B, C, D)) -> Bool where A : Comparable, B : Comparable, C : Comparable, D : Comparable`
func < <A, B, C>(_: (A, B, C), rhs: (A, B, C))

Returns a Boolean value indicating whether the first tuple is ordered before the second in a lexicographical ordering.

Given two tuples `(a1, a2, ..., aN)` and `(b1, b2, ..., bN)`, the first tuple is before the second tuple if and only if `a1 < b1` or (`a1 == b1` and `(a2, ..., aN) < (b2, ..., bN)`).

Parameters: lhs: A tuple of `Comparable` elements. rhs: Another tuple of elements of the same type as `lhs`.

#### Declaration

`func <<A, B, C>(lhs: (A, B, C), rhs: (A, B, C)) -> Bool where A : Comparable, B : Comparable, C : Comparable`
func < <A, B>(_: (A, B), rhs: (A, B))

Returns a Boolean value indicating whether the first tuple is ordered before the second in a lexicographical ordering.

Given two tuples `(a1, a2, ..., aN)` and `(b1, b2, ..., bN)`, the first tuple is before the second tuple if and only if `a1 < b1` or (`a1 == b1` and `(a2, ..., aN) < (b2, ..., bN)`).

Parameters: lhs: A tuple of `Comparable` elements. rhs: Another tuple of elements of the same type as `lhs`.

#### Declaration

`func <<A, B>(lhs: (A, B), rhs: (A, B)) -> Bool where A : Comparable, B : Comparable`
func <(_: AnyIndex, rhs: AnyIndex)

Returns a Boolean value indicating whether the first argument represents a position before the second argument.

The types of the two underlying indices must be identical.

Parameters: lhs: An index to compare. rhs: Another index to compare.

#### Declaration

`func <(lhs: AnyIndex, rhs: AnyIndex) -> Bool`
func <(_: Character, rhs: Character)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Character, rhs: Character) -> Bool`
func <(_: Character.UnicodeScalarView.Index, rhs: Character.UnicodeScalarView.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Character.UnicodeScalarView.Index, rhs: Character.UnicodeScalarView.Index) -> Bool`
func <(_: ClosedRange<Bound>.Index, rhs: ClosedRange<Bound>.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: ClosedRange<Bound>.Index, rhs: ClosedRange<Bound>.Index) -> Bool`
func <(_: Dictionary<Key, Value>.Index, rhs: Dictionary<Key, Value>.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Dictionary<Key, Value>.Index, rhs: Dictionary<Key, Value>.Index) -> Bool`
func <(_: FlattenCollection<Base>.Index, rhs: FlattenCollection<Base>.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: FlattenCollection<Base>.Index, rhs: FlattenCollection<Base>.Index) -> Bool`
func <(_: Int, rhs: Int)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Int, rhs: Int) -> Bool`

#### Declared In

`Int`, `FixedWidthInteger`
func <(_: Int8, rhs: Int8)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Int8, rhs: Int8) -> Bool`

#### Declared In

`Int8`, `FixedWidthInteger`
func <(_: Int16, rhs: Int16)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Int16, rhs: Int16) -> Bool`

#### Declared In

`Int16`, `FixedWidthInteger`
func <(_: Int32, rhs: Int32)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Int32, rhs: Int32) -> Bool`

#### Declared In

`Int32`, `FixedWidthInteger`
func <(_: Int64, rhs: Int64)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Int64, rhs: Int64) -> Bool`

#### Declared In

`Int64`, `FixedWidthInteger`
func <(_: LazyDropWhileCollection<Base>.Index, rhs: LazyDropWhileCollection<Base>.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: LazyDropWhileCollection<Base>.Index, rhs: LazyDropWhileCollection<Base>.Index) -> Bool`
func <(_: LazyPrefixWhileCollection<Base>.Index, rhs: LazyPrefixWhileCollection<Base>.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: LazyPrefixWhileCollection<Base>.Index, rhs: LazyPrefixWhileCollection<Base>.Index) -> Bool`
func <(_: ObjectIdentifier, rhs: ObjectIdentifier)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: ObjectIdentifier, rhs: ObjectIdentifier) -> Bool`
func <(_: ReversedCollection<Base>.Index, rhs: ReversedCollection<Base>.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: ReversedCollection<Base>.Index, rhs: ReversedCollection<Base>.Index) -> Bool`
func <(_: Self, rhs: Self)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Self, rhs: Self) -> Bool`

#### Declared In

`BinaryFloatingPoint`, `FloatingPoint`
func <(_: Set<Element>.Index, rhs: Set<Element>.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Set<Element>.Index, rhs: Set<Element>.Index) -> Bool`
func <(_: String, rhs: String)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: String, rhs: String) -> Bool`
func <(_: String.Index, rhs: String.Index)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: String.Index, rhs: String.Index) -> Bool`
func <(_: UInt, rhs: UInt)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: UInt, rhs: UInt) -> Bool`

#### Declared In

`UInt`, `FixedWidthInteger`
func <(_: UInt8, rhs: UInt8)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: UInt8, rhs: UInt8) -> Bool`

#### Declared In

`UInt8`, `FixedWidthInteger`
func <(_: UInt16, rhs: UInt16)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: UInt16, rhs: UInt16) -> Bool`

#### Declared In

`UInt16`, `FixedWidthInteger`
func <(_: UInt32, rhs: UInt32)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: UInt32, rhs: UInt32) -> Bool`

#### Declared In

`UInt32`, `FixedWidthInteger`
func <(_: UInt64, rhs: UInt64)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: UInt64, rhs: UInt64) -> Bool`

#### Declared In

`UInt64`, `FixedWidthInteger`
func <(_: Unicode.Scalar, rhs: Unicode.Scalar)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <(lhs: Unicode.Scalar, rhs: Unicode.Scalar) -> Bool`
func <(_: UnsafeMutablePointer<Pointee>, rhs: UnsafeMutablePointer<Pointee>)

Returns a Boolean value indicating whether the first pointer references an earlier memory location than the second pointer.

Parameters: lhs: A pointer. rhs: Another pointer. Returns: `true` if `lhs` references a memory address earlier than `rhs`; otherwise, `false`.

#### Declaration

`func <(lhs: UnsafeMutablePointer<Pointee>, rhs: UnsafeMutablePointer<Pointee>) -> Bool`
func <(_: UnsafeMutableRawPointer, rhs: UnsafeMutableRawPointer)

Returns a Boolean value indicating whether the first pointer references an earlier memory location than the second pointer.

Parameters: lhs: A pointer. rhs: Another pointer. Returns: `true` if `lhs` references a memory address earlier than `rhs`; otherwise, `false`.

#### Declaration

`func <(lhs: UnsafeMutableRawPointer, rhs: UnsafeMutableRawPointer) -> Bool`
func <(_: UnsafePointer<Pointee>, rhs: UnsafePointer<Pointee>)

Returns a Boolean value indicating whether the first pointer references an earlier memory location than the second pointer.

Parameters: lhs: A pointer. rhs: Another pointer. Returns: `true` if `lhs` references a memory address earlier than `rhs`; otherwise, `false`.

#### Declaration

`func <(lhs: UnsafePointer<Pointee>, rhs: UnsafePointer<Pointee>) -> Bool`
func <(_: UnsafeRawPointer, rhs: UnsafeRawPointer)

Returns a Boolean value indicating whether the first pointer references an earlier memory location than the second pointer.

Parameters: lhs: A pointer. rhs: Another pointer. Returns: `true` if `lhs` references a memory address earlier than `rhs`; otherwise, `false`.

#### Declaration

`func <(lhs: UnsafeRawPointer, rhs: UnsafeRawPointer) -> Bool`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`Strideable`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`Strideable`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`Strideable`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`Strideable`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`Strideable`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`BinaryFloatingPoint`, `Strideable`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func <(_: Self, y: Self)

#### Declaration

`func <(x: Self, y: Self) -> Bool`

#### Declared In

`FixedWidthInteger`
func < <R>(_: Self, rhs: R)

Returns a Boolean value indicating whether the value of the first argument is less than that of the second argument.

This function is the only requirement of the `Comparable` protocol. The remainder of the relational operator functions are implemented by the standard library for any type that conforms to `Comparable`.

Parameters: lhs: A value to compare. rhs: Another value to compare.

#### Declaration

`func <<R>(lhs: Self, rhs: R) -> Bool where R : StringProtocol`

#### Declared In

`StringProtocol`