---
name: "__gnu_parallel::__inner_product_selector"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/__gnu_parallel::__inner_product_selector/3cxx"
---

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

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.

## 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 **\_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>::\_\_begin1\_iterator**, and **\_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>::\_\_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 **\_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>::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 **\_\_gnu\_parallel::\_\_inner\_product\_selector\< \_It, \_It2, \_Tp \>::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.
