---
name: "__gnu_parallel::_Plus"
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::_Plus"
---

# \_\_gnu\_parallel::\_Plus(3)

Similar to std::plus, but allows two different types.

## NAME

\_\_gnu\_parallel::\_Plus\< \_Tp1, \_Tp2, \_Result \> - Similar to std::plus, but allows two different types.

## SYNOPSIS

\#include \<base.h\>

Inherits **std::binary\_function\< \_Arg1, \_Arg2, \_Result \>**.

### Public Types

typedef \_Arg1 **first\_argument\_type**\
 first\_argument\_type is the type of the first argument  typedef \_Result **result\_type**\
 result\_type is the return type  typedef \_Arg2 **second\_argument\_type**\
 second\_argument\_type is the type of the second argument

### Public Member Functions

\_Result **operator()** (const \_Tp1 &\_\_x, const \_Tp2 &\_\_y) const\

## Detailed Description

### template\<typename \_Tp1, typename \_Tp2, typename \_Result = \_\_typeof\_\_(\*static\_cast\<\_Tp1\*\>(0) + \*static\_cast\<\_Tp2\*\>(0))\>

struct \_\_gnu\_parallel::\_Plus\< \_Tp1, \_Tp2, \_Result \>"Similar to std::plus, but allows two different types.

## Member Typedef Documentation

### template\<typename \_Arg1, typename \_Arg2, typename \_Result\> typedef \_Arg1 std::binary\_function\< \_Arg1, \_Arg2, \_Result \>::first\_argument\_type \[inherited\]

first\_argument\_type is the type of the first argument

### template\<typename \_Arg1, typename \_Arg2, typename \_Result\> typedef \_Result std::binary\_function\< \_Arg1, \_Arg2, \_Result \>::result\_type \[inherited\]

result\_type is the return type

### template\<typename \_Arg1, typename \_Arg2, typename \_Result\> typedef \_Arg2 std::binary\_function\< \_Arg1, \_Arg2, \_Result \>::second\_argument\_type \[inherited\]

second\_argument\_type is the type of the second argument

## Author

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