Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  abseil-in-webrtc.md   Sprache: unbekannt

 
Spracherkennung für: .md vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

<!-- go/cmark -->

<!--* freshness: {owner: 'danilchap' reviewed: '2026-04-02'} *-->

# Using Abseil in WebRTC

You may use a subset of the utilities provided by the [Abseil] library when
writing WebRTC C++ code. Below, we list the explicitly *allowed* and the
explicitly *disallowed* subsets of Abseil; if you find yourself in need of
something that isn’t in either subset, please add it to the *allowed* subset in
this doc in the same CL that adds the first use.

## How to depend on Abseil

Dependencies on Abseil need to be listed in `deps` using absolute path, for
example `"//third_party/abseil-cpp/absl/base:core_headers"`

The rtc GN templates will take care of generating the proper dependency when
used within Chromium or standalone. In the `build_with_chromium` mode, WebRTC
will depend on the monolithic Abseil build target that will generate a shared
library.

## **Allowed**

- `absl::AnyInvocable`

- `absl::bind_front`

- `absl::Cleanup`

- [Hash tables, and B-tree ordered][abseil-containers] containers

- `absl::InlinedVector`

- `absl_nonnull` and `absl_nullable`

- `absl::NoDestructor`

- `absl::WrapUnique`

- `absl::string_view` (preferred over std::string_view, see
  [issue 42225436](https://issues.webrtc.org/42225436) for details)

- The functions in `absl/strings/ascii.h`, `absl/strings/match.h`, and
  `absl/strings/str_replace.h`.

- The functions in `absl/strings/escaping.h`.

- The functions in `absl/algorithm/algorithm.h` and
  `absl/algorithm/container.h`.

- The macros in `absl/base/attributes.h`, `absl/base/config.h` and
  `absl/base/macros.h`.

- `absl/numeric/bits.h`

- `absl/crc`

- Single argument `absl::StrCat`

- ABSL_FLAG is allowed in tests and tools, but disallowed in in non-test code.

## **Disallowed**

### `absl::make_unique`

*Use `std::make_unique` instead.*

### `absl::Mutex`

*Use `webrtc::Mutex` instead.*

### `absl::optional` and `absl::variant`

*Use `std::optional` and `std::variant` directly.*

### `absl::Span`

*Use `std::span` instead.*

`absl::Span` differs from `std::span` on several points, in particular lacks
static extent template parameter that WebRTC relies on.

### `absl::StrCat`, `absl::StrAppend`, `absl::StrJoin`, `absl::StrSplit`

*Use `webrtc::StringBuilder` to build strings.*

These are optimized for speed, not binary size. Even `StrCat` calls with a
modest number of arguments can easily add several hundred bytes to the binary.

Exception: Single-argument absl::StrCat is allowed in order to make it easy to
use AbslStringify. See [TOTW #215](https://abseil.io/tips/215) for details on
AbslStringify.

[abseil]: https://abseil.io/about/
[abseil-containers]: https://abseil.io/docs/cpp/guides/container

[Dauer der Verarbeitung: 0.17 Sekunden, vorverarbeitet 2026-08-27]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=434850
#Domains=655579