You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
# 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.
|