[linalg.helpers.conj]

# 29 Numerics library [[numerics]](./#numerics)

## 29.9 Basic linear algebra algorithms [[linalg]](linalg#helpers.conj)

### 29.9.7 Exposition-only helpers [[linalg.helpers]](linalg.helpers#conj)

#### 29.9.7.2 *conj-if-needed* [linalg.helpers.conj]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L12317)

The name *conj-if-needed* denotes an exposition-only function object[.](#1.sentence-1)

The expression *conj-if-needed*(E) for a subexpression E whose type is T is expression-equivalent to:

- [(1.1)](#1.1)

conj(E),
if T is not an arithmetic type and
the expression conj(E) is valid,
with overload resolution performed in a context that includes the declarationtemplate<class U> U conj(const U&) = delete;
   If the function selected by overload resolution
does not return the complex conjugate of its input,
the program is ill-formed, no diagnostic required;

- [(1.2)](#1.2)

otherwise, E[.](#1.sentence-2)
