Online Tools Every C++ Developer Should KnowONLINE TOOLS EVERY C++ DEVELOPER SHOULD KNOW Thamara AndradeHELLO! 2 https://thamara.dev @thamyk I am Thamara Andrade (she/her) Lead Software Engineer @ CadenceHELLO! 3 https://thamara.dev @thamyk0 码力 | 11 页 | 1.11 MB | 6 月前3
Common Package Specification: Getting Build Tools to Talk to Each OtherA Common Package Specification: Getting Build Tools to Talk to Each Other Lessons Learned From Making Thousands of Binaries Consumable by Any Build System Diego Rodriguez-Losada @ CppCon 2023Outline0 码力 | 94 页 | 1.58 MB | 6 月前3
Powered by AI: A Cambrian Explosion for C++ Software Development Tools`University of Massachusetts Amherst Powered by AI: A Cambrian Explosion for C++ Software Development Tools Emery BergerCretaceous–Paleogene (K-Pg) extinction eventCretaceous–Paleogene (K-Pg) extinction e0 码力 | 128 页 | 23.40 MB | 6 月前3
LLVM's Realtime Safety Revolution: Tools for Modern Mission Critical SystemsLLVM’s Real-time Safety Revolution Tools for Modern Mission Critical SystemsChris Apple ● 10-year veteran of the audio industry ● Previously Dolby, Roblox, Spatial Inc. ● Currently: layabout David ⚠Neither RTSan nor the perf. constraints attributes can fully guarantee real-time safetyThese tools make writing real-time code saferINTERLUDE OVERAgenda 1. Real-time programming 2. Existing Dependent on clang 20+ Both Detect real-time safety issues Use [[clang::nonblocking]]Both tools were designed to complement each otherUse both, and write better real-time code!Thanks! ●0 码力 | 153 页 | 1.38 MB | 6 月前3
Leveraging a Functional Approach for More Testable and Maintainable ROS 2 Codethe use of higher order functions, pure functions, monads, declarative syntax ○ C++ has all the tools to implement functional programming, including lambda functions, std::function, std::optional, std::expected the use of higher order functions, pure functions, monads, declarative syntax ○ C++ has all the tools to implement functional programming, including lambda functions, std::function, std::optional, std::expected the use of higher order functions, pure functions, monads, declarative syntax ○ C++ has all the tools to implement functional programming, including lambda functions, std::function, std::optional, std::expected0 码力 | 200 页 | 1.77 MB | 6 月前3
Distributed Ranges: A Model for Building Distributed Data Structures, Algorithms, and Viewsat>& x, vector& y) { auto z = views::zip(x, y) | views::transform([](auto element) { auto [a, b] = element; return a * b; }); dot_product(R&& x, R&& y) { using T = range_value_t ; auto z = views::zip(x, y) | views::transform([](auto element) { auto [a, b] = element; return a * b; }); 6 6 5 4 3 2 1 x y 6 5 4 3 2 1 1 2 3 4 5 6 Inputs zip(x, y) 6 10 12 12 10 6 transform(f) reduce 56 (Data Structures) (View) (View) (Algorithm)Standard C++ Parallelism - Data structures 0 码力 | 127 页 | 2.06 MB | 6 月前3
C++/Rust Interop: Using Bridges in Practice12class Joint { public: Eigen::Isometry3d calculate_transform(const Eigen::VectorXd& variables); }; impl Joint { pub fn calculate_transform(&self, variables: &[f64]) -> Isometry3; } hpp [c_double; 16], } 14use std::ffi::{c_double, c_uint}; #[no_mangle] extern "C" fn robot_joint_calculate_transform( joint: *const Joint, variables: *const c_double, size: c_uint, ) -> Mat4d { unsafe std::slice::from_raw_parts(variables, size as usize); let transform = joint.calculate_transform(variables); Mat4d { data: transform.to_matrix().as_slice().try_into().unwrap(), } 0 码力 | 45 页 | 724.12 KB | 6 月前3
Implementing Particle Filters with Rangesranges Particle filters are complex algorithms applied to ranges The Ranges library provides the tools to write these algorithms in a way that is: Easy to read Less error-prone Easy to reuse 9.1CONCEPTS ... } 1 2 3 4 5 6 7 8 11PARTICLE FILTER ALGORITHM UPDATE STATES AND WEIGHTS std::views::transform templatevoid filter( std::vector & particles, StateUpdateFn auto auto reweight_fn) { auto states = particles | std::views::transform(&T::state); auto weights = particles | std::views::transform(&T::weight); ... } 1 2 3 4 5 6 7 8 9 10 11 12PARTICLE 0 码力 | 83 页 | 4.70 MB | 6 月前3
Reusable Code & Reusable Data Structuresry void vertical_center(WidgetContainer const& c) { } 1 2 auto rects = tc::make_vector(tc::transform(c, 3 [](widget const& w) { return w.bounding_box(); } 4 )); 5 // Magic happens 6 tc ry void vertical_center(WidgetContainer const& c) { } 1 2 auto rects = tc::make_vector(tc::transform(c, 3 [](widget const& w) { return w.bounding_box(); } 4 )); 5 // Magic happens 6 tc [&](widget& w, rect r) { 8 widget.place(r); 9 } 10 11 ); 12 auto rects = tc::make_vector(tc::transform(c, [](widget const& w) { return w.bounding_box(); } )); // https://github.com/think-cell/think-cell-library0 码力 | 132 页 | 14.20 MB | 6 月前3
Expressive Compile-time Parsersbe valid C++ syntax because it needs to be parsed by the compiler >> node* >>Example – Filter Transform vectorcats = { /*...*/ }; vector< tuple > result; for(auto itr = cats.cbegin(); if(itr->age > 42) result.emplace_back(tuple{ itr->id, itr->name });Example – Filter Transform vector cats = { /*...*/ }; vector< tuple > result; for(const auto& cat : cats) });Example – Filter Transform vector cats = { /*...*/ }; namespace v = std::views; auto result = cats | v::filter([](const Cat& cat) { return cat.age > 42; }) | v::transform([](const Cat& 0 码力 | 134 页 | 1.73 MB | 6 月前3
共 240 条
- 1
- 2
- 3
- 4
- 5
- 6
- 24
相关搜索词
OnlineToolsEveryC++DeveloperShouldKnowCommonPackageSpecificationGettingBuildtoTalkEachOtherPoweredbyAICambrianExplosionforSoftwareDevelopmentLLVMRealtimeSafetyRevolutionModernMissionCriticalSystemsLeveragingFunctionalApproachMoreTestableandMaintainableROSCodeDistributedRangesModelBuildingDataStructuresAlgorithmsViewsRustInteropUsingBridgesinPracticeImplementingParticleFilterswithReusableExpressiveCompiletimeParsers













