---
name: "__gnu_parallel::__inner_product_selector"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/__gnu_parallel::__inner_product_selector"
---

# \_\_gnu\_parallel::\_\_inner\_product\_selector(3)

std::inner\_product() selector.

## NAME

\_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \> - std::inner\_product() selector.

## SYNOPSIS

\#include \<for\_each\_selectors.h\>

Inherits **\_\_gnu\_parallel::\_\_generic\_for\_each\_selector\< \_It \>**.

### Public Member Functions

**\_\_inner\_product\_selector** (\_It \_\_b1, \_It2 \_\_b2)\
 Constructor.  template\<typename \_Op\> \_Tp **operator()** (\_Op \_\_mult, \_It \_\_current)\
 Functor execution.

### Public Attributes

\_It **\_\_begin1\_iterator**\
 Begin iterator of first sequence.  \_It2 **\_\_begin2\_iterator**\
 Begin iterator of second sequence.  \_It **\_M\_finish\_iterator**\
 \_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).

## Detailed Description

### template\<typename \_It, typename \_It2, typename \_Tp\>

struct \_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>"std::inner\_product() selector.

## Constructor & Destructor Documentation

### template\<typename \_It, typename \_It2, typename \_Tp\> \_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>::\_\_inner\_product\_selector (\_It \_\_b1, \_It2 \_\_b2) \[inline\], \[explicit\]

Constructor.

**Parameters**

*\_\_b1* Begin iterator of first sequence. \
 *\_\_b2* Begin iterator of second sequence.

References **\_\_begin1\_iterator**, and **\_\_begin2\_iterator**.

## Member Function Documentation

### template\<typename \_It, typename \_It2, typename \_Tp\> template\<typename \_Op\> \_Tp \_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>::operator() (\_Op \_\_mult, \_It \_\_current) \[inline\]

Functor execution.

**Parameters**

*\_\_mult* Multiplication functor. \
 *\_\_current* iterator referencing object.

**Returns**

Inner product elemental \_\_result.

References **\_\_begin1\_iterator**, and **\_\_begin2\_iterator**.

## Member Data Documentation

### template\<typename \_It, typename \_It2, typename \_Tp\> \_It \_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>::\_\_begin1\_iterator

Begin iterator of first sequence.

Referenced by **\_\_inner\_product\_selector()**, and **operator()()**.

### template\<typename \_It, typename \_It2, typename \_Tp\> \_It2 \_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>::\_\_begin2\_iterator

Begin iterator of second sequence.

Referenced by **\_\_inner\_product\_selector()**, and **operator()()**.

### template\<typename \_It\> \_It \_\_gnu\_parallel::\_\_generic\_for\_each\_selector\< \_It \>::\_M\_finish\_iterator \[inherited\]

\_Iterator on last element processed; needed for some algorithms (e. g. std::transform()).

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
