File: README.md

package info (click to toggle)
android-platform-tools 34.0.5-12
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 150,900 kB
  • sloc: cpp: 805,786; java: 293,500; ansic: 128,288; xml: 127,491; python: 41,481; sh: 14,245; javascript: 9,665; cs: 3,846; asm: 2,049; makefile: 1,917; yacc: 440; awk: 368; ruby: 183; sql: 140; perl: 88; lex: 67
file content (41 lines) | stat: -rw-r--r-- 1,435 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# FTL

FTL is a template library shared by SurfaceFlinger and InputFlinger, inspired by
and supplementing the C++ Standard Library. The intent is to fill gaps for areas
not (yet) covered—like cache-efficient data structures and lock-free concurrency
primitives—and implement proposals that are missing or experimental in Android's
libc++ branch. The design takes some liberties with standard compliance, notably
assuming that exceptions are disabled.

## Tests

    atest ftl_test

## Style

- Based on [Google C++ Style](https://google.github.io/styleguide/cppguide.html).
- Informed by [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines).

Naming conventions are as follows:

- `PascalCase`
    - Types and aliases, except standard interfaces.
    - Template parameters, including non-type ones.
- `snake_case`
    - Variables, and data members with trailing underscore.
    - Functions, free and member alike.
    - Type traits, with standard `_t` and `_v` suffixes.
- `kCamelCase`
    - Enumerators and `constexpr` constants with static storage duration.
- `MACRO_CASE`
    - Macros, with `FTL_` prefix unless `#undef`ed.

Template parameter packs are named with the following convention:

    typename T, typename... Ts
    typename Arg, typename... Args

    std::size_t I, std::size_t... Is
    std::size_t Size, std::size_t... Sizes

The `details` namespace contains implementation details.