cpp_kaffeprat
C++ Core Guidelines
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
presentasjoner
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=1.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=2.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=3.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=4.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=5.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=6.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=7.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=8.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=9.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=10.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=11.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=12.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=13.md
- http://meastp.github.io/cpp_kaffeprat/presentation.html?file=14.md
status
using namespace std;
C++11
- (1) nullptr
- (1) auto
- (1) to_string
- (1) tie, tuple
- (1) array
- (1) range-based for
- (1) unique_ptr, make_unique
- (1) shared_ptr, make_shared
- (2) non-static data member initializers
- (2) move semantics: move, forward, rvalue references og move constructors/-assignment
- (2) default and deleted functions
- (3) enum class ("strongly typed enums")
- (3) using (i stedet for typedef) (alias og alias templates)
- (3) lambda-funksjoner
- (4) override og final
- (5) std::mutex, std::recursive_mutex osv.
- (5) std::lock, std::lock_guard
- (5) std::atomic
- (5) std::thread
- (5) std::future
- (6) inline-namespace
- (6) user-defined literals
- (6) initializer lists
- (6) delegating constructors
- (6) std::chrono
- (7) attributes
- (7) decltype
- (7) type traits (eks. std::is_integral::value)
- (7) variadic templates
- (8) constexpr
C++14
- (8) constexpr med færre begrensninger
- (8) user-defined literals for standard library types
- (8) binary literals
- (8) lambda capture initializers
- (8) generic lambda expressions
- (8) return type deduction
- (8) decltype(auto)
- (8) std::integer_sequence
- (8) variable templates
C++17
-
(9) nested namespaces
-
(9) utf-8 character literals
-
(9) splicing for maps and sets (insert_or_assign, try_emplace, merge, extract)
-
(9) inline variables
-
(9) std::optional
-
(9) std::any
-
(9) std::filesystem
-
(9) std::string_view
-
(10) std::variant, std::visit
-
(10) structured bindings
-
(10) selection statements (if og switch) with initializer
-
(10) std::apply, std::invoke
-
(10) fold expressions
-
(10) template argument deduction for class templates
-
(10) declaring non-type template parameters with auto
-
(10) if constexpr
-
(10) constexpr lambda
-
(10) lambda capture this by value
C++20
- (11) range-based for with initializer
- (11)
std::starts_with
std::ends_with
forstd::string
ogstd::string_view
- (11) uniform container erasure (
std::erase
ogstd::erase_if
) - (11)
std::u8string
- (11)
std::bind_front
- (11)
std::endian
- (11)
<numbers>
- matematiske konstanter - (11)
std::jthread
- joining thread with cancellation - (11)
<source_location>
- (11)
<span>
- (12)
<bit>
- (12) consteval, constinit
- (12) mer constexpr (
std::vector
std::string
) - (12) designated initializers (fra C)
- (12) 3-way comparison
<=>
ogoperator==() = default
og<compare>
- (13)
<format>
- (14) Calendar and Time Zone library (
<chrono>
) - (14) abbreviated function templates
- (15)
<concepts>
- (16)
<coroutine>
- (17) modules
- (18)
<ranges>
C++23 TBD
- stacktrace
-
string::contains
-
size_t
->100uz
- pattern matching?
- modules for std?
- coroutine task?