Name Date Size #Lines LOC

..--

.clang-formatH A D25-Apr-2025239 1211

Android.bpH A D25-Apr-20251.2 KiB4745

OWNERSH A D25-Apr-202566 11

README.mdH A D25-Apr-20251.4 KiB4230

TEST_MAPPINGH A D25-Apr-2025128 1312

algorithm_test.cppH A D25-Apr-20252.6 KiB7843

cast_test.cppH A D25-Apr-20258.9 KiB201123

concat_test.cppH A D25-Apr-20252.2 KiB7341

enum_test.cppH A D25-Apr-20257.1 KiB213149

expected_test.cppH A D25-Apr-20254.1 KiB14698

fake_guard_test.cppH A D25-Apr-20251.2 KiB5024

flags_test.cppH A D25-Apr-20257.4 KiB231179

function_test.cppH A D25-Apr-202511.6 KiB380248

future_test.cppH A D25-Apr-20254.1 KiB144101

hash_test.cppH A D25-Apr-20251.3 KiB4116

match_test.cppH A D25-Apr-20251.5 KiB4922

mixins_test.cppH A D25-Apr-20256.2 KiB186117

non_null_test.cppH A D25-Apr-20256.6 KiB195140

optional_test.cppH A D25-Apr-20257.5 KiB254173

shared_mutex_test.cppH A D25-Apr-20251.5 KiB6135

small_map_test.cppH A D25-Apr-202512.2 KiB446313

small_vector_test.cppH A D25-Apr-202517.4 KiB663459

static_vector_test.cppH A D25-Apr-202512.7 KiB480328

string_test.cppH A D25-Apr-20254.8 KiB188137

README.md

1# FTL
2
3FTL is a template library shared by SurfaceFlinger and InputFlinger, inspired by
4and supplementing the C++ Standard Library. The intent is to fill gaps for areas
5not (yet) covered—like cache-efficient data structures and lock-free concurrency
6primitives—and implement proposals that are missing or experimental in Android's
7libc++ branch. The design takes some liberties with standard compliance, notably
8assuming that exceptions are disabled.
9
10## Tests
11
12    atest ftl_test
13
14## Style
15
16- Based on [Google C++ Style](https://google.github.io/styleguide/cppguide.html).
17- Informed by [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines).
18
19Naming conventions are as follows:
20
21- `PascalCase`
22    - Types and aliases, except standard interfaces.
23    - Template parameters, including non-type ones.
24- `snake_case`
25    - Variables, and data members with trailing underscore.
26    - Functions, free and member alike.
27    - Type traits, with standard `_t` and `_v` suffixes.
28- `kCamelCase`
29    - Enumerators and `constexpr` constants with static storage duration.
30- `MACRO_CASE`
31    - Macros, with `FTL_` prefix unless `#undef`ed.
32
33Template parameter packs are named with the following convention:
34
35    typename T, typename... Ts
36    typename Arg, typename... Args
37
38    std::size_t I, std::size_t... Is
39    std::size_t Size, std::size_t... Sizes
40
41The `details` namespace contains implementation details.
42