-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
21 lines (19 loc) · 15.3 KB
/
index.html
File metadata and controls
21 lines (19 loc) · 15.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html><html lang="zh-CN"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"><meta content="yes" name="apple-mobile-web-app-capable"><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"><meta content="telephone=no" name="format-detection"><meta name="description" content="个人站,学习记录、实践教程、资料收集等,哈哈哈。"><title>Sun of Beach | Stay Angry, Stay Foolish</title><link rel="stylesheet" type="text/css" href="/css/style.css?v=1.0.0"><link rel="stylesheet" type="text/css" href="//lib.baomitu.com/normalize/latest/normalize.min.css"><link rel="stylesheet" type="text/css" href="//lib.baomitu.com/pure/latest/pure-min.min.css"><link rel="stylesheet" type="text/css" href="//lib.baomitu.com/pure/latest/grids-responsive-min.min.css"><link rel="stylesheet" href="//lib.baomitu.com/font-awesome/4.7.0/css/font-awesome.min.css"><script type="text/javascript" src="//lib.baomitu.com/jquery/latest/jquery.min.js"></script><link rel="icon" mask="" sizes="any" href="/favicon.ico"><link rel="Shortcut Icon" type="image/x-icon" href="/favicon.ico"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="apple-touch-icon-precomposed" href="/apple-touch-icon.png"><script type="text/javascript" src="//lib.baomitu.com/clipboard.js/latest/clipboard.min.js"></script><script type="text/javascript" src="//lib.baomitu.com/toastr.js/latest/toastr.min.js"></script><link rel="stylesheet" href="//lib.baomitu.com/toastr.js/latest/toastr.min.css"><div class="darkmode-toggle">🌓</div><script>var prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)');
var toggle = document.querySelector('.darkmode-toggle');
var html = document.querySelector('html');
html.dataset.dark = localStorage.dark || prefersDarkMode.matches;
toggle.addEventListener('click', () => {
localStorage.dark = !(html.dataset.dark == 'true');
html.dataset.dark = localStorage.dark;
});</script><meta name="generator" content="Hexo 6.3.0"></head><body><div class="body_container"><div id="header"><div class="site-name"><h1 class="hidden">Sun of Beach</h1><a id="logo" href="/.">Sun of Beach</a><p class="description">Stay Angry, Stay Foolish</p></div><div id="nav-menu"><a class="current" href="/."><i class="fa fa-home"> 首页</i></a><a href="/archives/"><i class="fa fa-archive"> 归档</i></a><a href="/about/"><i class="fa fa-user"> 关于</i></a></div></div><div class="pure-g" id="layout"><div class="pure-u-1 pure-u-md-3-4"><div class="content_container"><div class="post"><h1 class="post-title"><a href="/posts/2750461479/">C++ Weekly Episode 162 Recursive Lambdas</a></h1><div class="post-meta">2023-04-17</div><div class="post-content">C++ Weekly Episode 162 Recursive Lambdas若使用常规的递归方式来实现一个斐波那契数列的 lambda 函数, 如下:
1234567891011constexpr auto fib = [](int input) { if (input < 2) return 1; retur...</div><p class="readmore"><a href="/posts/2750461479/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/176443133/">CON56-CPP. 不要对当前线程已经拥有的非递归互斥体进行假想锁定</a></h1><div class="post-meta">2023-04-01</div><div class="post-content"><p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/CON55-CPP.+Preserve+thread+safety+and+liveness+when+using+condition+variables">CON55-CPP. Preserve thread safety and liveness when using condition variables</a></p></div><p class="readmore"><a href="/posts/176443133/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/3196588117/">CON55-CPP. 使用条件变量时要保持线程安全和存活性</a></h1><div class="post-meta">2023-04-01</div><div class="post-content"><p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/CON55-CPP.+Preserve+thread+safety+and+liveness+when+using+condition+variables">CON55-CPP. Preserve thread safety and liveness when using condition variables</a></p></div><p class="readmore"><a href="/posts/3196588117/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/1519021198/">CON54-CPP. 在循环中包装可能虚假唤醒的函数</a></h1><div class="post-meta">2023-04-01</div><div class="post-content"><p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/CON54-CPP.+Wrap+functions+that+can+spuriously+wake+up+in+a+loop">CON54-CPP. Wrap functions that can spuriously wake up in a loop</a></p></div><p class="readmore"><a href="/posts/1519021198/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/730331528/">CON53-CPP. 避免死锁的方法:按预定义的顺序锁定</a></h1><div class="post-meta">2023-04-01</div><div class="post-content"><p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/CON53-CPP.+Avoid+deadlock+by+locking+in+a+predefined+order">CON53-CPP. Avoid deadlock by locking in a predefined order</a></p></div><p class="readmore"><a href="/posts/730331528/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/3975169340/">CON52-CPP. 在多线程访问位域时避免数据竞争</a></h1><div class="post-meta">2023-04-01</div><div class="post-content"><p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/CON52-CPP.+Prevent+data+races+when+accessing+bit-fields+from+multiple+threads">CON52-CPP. Prevent data races when accessing bit-fields from multiple threads</a></p></div><p class="readmore"><a href="/posts/3975169340/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/3790056389/">CON50-CPP. 不要在互斥锁被锁定时销毁它</a></h1><div class="post-meta">2023-04-01</div><div class="post-content"><p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/CON50-CPP.+Do+not+destroy+a+mutex+while+it+is+locked">CON50-CPP. Do not destroy a mutex while it is locked</a></p></div><p class="readmore"><a href="/posts/3790056389/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/1519021197/">CON51-CPP. 确保在异常情况下释放被持有的活动的锁</a></h1><div class="post-meta">2023-04-01</div><div class="post-content"><p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/CON51-CPP.+Ensure+actively+held+locks+are+released+on+exceptional+conditions">CON51-CPP. Ensure actively held locks are released on exceptional conditions</a></p></div><p class="readmore"><a href="/posts/1519021197/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/2113816124/">FIO51-CPP. 关闭不再需要的文件</a></h1><div class="post-meta">2022-04-27</div><div class="post-content"><hr>
<p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/FIO51-CPP.+Close+files+when+they+are+no+longer+needed">FIO51-CPP. Close files when they are no longer needed</a></p></div><p class="readmore"><a href="/posts/2113816124/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/posts/2518610003/">OPP-CPP58. 拷贝操作绝不能改变源对象</a></h1><div class="post-meta">2022-04-26</div><div class="post-content"><p>原文链接:</p>
<p><a target="_blank" rel="noopener" href="https://wiki.sei.cmu.edu/confluence/display/cplusplus/OOP58-CPP.+Copy+operations+must+not+mutate+the+source+object">OOP58-CPP. Copy operations must not mutate the source object</a></p></div><p class="readmore"><a href="/posts/2518610003/">阅读全文</a></p></div><nav class="page-navigator"><span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="page-number" href="/page/3/">3</a><span class="space">…</span><a class="page-number" href="/page/7/">7</a><a class="extend next" rel="next" href="/page/2/">下一页</a></nav></div></div><div class="pure-u-1 pure-u-md-1-4"><div id="sidebar"><div class="widget"><div class="author-info"><a class="info-avatar" href="/about/" title="关于"><img class="nofancybox" src="/img/avatar.jpg"/></a><p>Stay Angry, Stay Foolish.</p><a class="info-icon" href="https://juejin.cn/user/435824491237181" title="掘金" target="_blank" style="margin-inline:5px"> <i class="fa fa-external-link-square" style="margin-inline:5px"></i></a><a class="info-icon" href="https://github.com/xwnb" title="GitHub" target="_blank" style="margin-inline:5px"> <i class="fa fa-github-square" style="margin-inline:5px"></i></a></div></div><div class="widget"><div class="widget-title"><i class="fa fa-folder-o"> 分类</i></div><ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/ROS%E5%AD%A6%E4%B9%A0/">ROS学习</a><span class="category-list-count">4</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/SEI-CERT-C/">SEI CERT C++</a><span class="category-list-count">41</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/Tutorial/">Tutorial</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%8F%91/">微信小程序开发</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/">自动驾驶</a><span class="category-list-count">9</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E8%B7%AF%E5%BE%84%E8%A7%84%E5%88%92/">路径规划</a><span class="category-list-count">5</span></li></ul></div><div class="widget"><div class="widget-title"><i class="fa fa-star-o"> 标签</i></div><div class="tagcloud"><a href="/tags/%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6/" style="font-size: 15px;">自动驾驶</a> <a href="/tags/AirSim/" style="font-size: 15px;">AirSim</a> <a href="/tags/C-Weekly/" style="font-size: 15px;">C++ Weekly</a> <a href="/tags/Lambda/" style="font-size: 15px;">Lambda</a> <a href="/tags/Tutorial/" style="font-size: 15px;">Tutorial</a> <a href="/tags/Markdown/" style="font-size: 15px;">Markdown</a> <a href="/tags/wechat-dev/" style="font-size: 15px;">wechat-dev</a> <a href="/tags/%E8%B7%AF%E5%BE%84%E8%A7%84%E5%88%92/" style="font-size: 15px;">路径规划</a> <a href="/tags/motion-planning/" style="font-size: 15px;">motion planning</a> <a href="/tags/A/" style="font-size: 15px;">A*</a> <a href="/tags/LPA/" style="font-size: 15px;">LPA*</a> <a href="/tags/RRT-Connect/" style="font-size: 15px;">RRT_Connect</a> <a href="/tags/RRT/" style="font-size: 15px;">RRT*</a> <a href="/tags/RRT/" style="font-size: 15px;">RRT</a> <a href="/tags/ROS/" style="font-size: 15px;">ROS</a> <a href="/tags/controller-manager/" style="font-size: 15px;">controller_manager</a> <a href="/tags/gazebo/" style="font-size: 15px;">gazebo</a> <a href="/tags/controller-manager/" style="font-size: 15px;">controller-manager</a> <a href="/tags/ur5/" style="font-size: 15px;">ur5</a> <a href="/tags/xacro/" style="font-size: 15px;">xacro</a> <a href="/tags/CON/" style="font-size: 15px;">CON</a> <a href="/tags/Concurrency/" style="font-size: 15px;">Concurrency</a> <a href="/tags/SEI-CERT-C/" style="font-size: 15px;">SEI CERT C++</a> <a href="/tags/%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83/" style="font-size: 15px;">编码规范</a> <a href="/tags/%E7%BF%BB%E8%AF%91/" style="font-size: 15px;">翻译</a> <a href="/tags/CERT-Containers/" style="font-size: 15px;">CERT Containers</a> <a href="/tags/Input-Output/" style="font-size: 15px;">Input Output</a> <a href="/tags/Integers/" style="font-size: 15px;">Integers</a> <a href="/tags/INT/" style="font-size: 15px;">INT</a> <a href="/tags/Memory-Management/" style="font-size: 15px;">Memory Management</a> <a href="/tags/Object-Oriented-Programming/" style="font-size: 15px;">Object Oriented Programming</a> <a href="/tags/OOP/" style="font-size: 15px;">OOP</a> <a href="/tags/Characters-and-Strings/" style="font-size: 15px;">Characters and Strings</a> <a href="/tags/STR/" style="font-size: 15px;">STR</a> <a href="/tags/roslaunch/" style="font-size: 15px;">roslaunch</a></div></div><div class="widget"><div class="widget-title"><i class="fa fa-file-o"> 最近文章</i></div><ul class="post-list"><li class="post-list-item"><a class="post-list-link" href="/posts/2750461479/">C++ Weekly Episode 162 Recursive Lambdas</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/176443133/">CON56-CPP. 不要对当前线程已经拥有的非递归互斥体进行假想锁定</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/3196588117/">CON55-CPP. 使用条件变量时要保持线程安全和存活性</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/1519021198/">CON54-CPP. 在循环中包装可能虚假唤醒的函数</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/730331528/">CON53-CPP. 避免死锁的方法:按预定义的顺序锁定</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/3975169340/">CON52-CPP. 在多线程访问位域时避免数据竞争</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/3790056389/">CON50-CPP. 不要在互斥锁被锁定时销毁它</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/1519021197/">CON51-CPP. 确保在异常情况下释放被持有的活动的锁</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/2113816124/">FIO51-CPP. 关闭不再需要的文件</a></li><li class="post-list-item"><a class="post-list-link" href="/posts/2518610003/">OPP-CPP58. 拷贝操作绝不能改变源对象</a></li></ul></div><div class="widget"><div class="widget-title"><i class="fa fa-external-link"> 友情链接</i></div></div></div></div><div class="pure-u-1 pure-u-md-3-4"><div id="footer">Copyright © 2023 <a href="/." rel="nofollow">Sun of Beach.</a> Powered by<a rel="nofollow" target="_blank" href="https://hexo.io"> Hexo.</a><a rel="nofollow" target="_blank" href="https://github.com/tufu9441/maupassant-hexo"> Theme</a> by<a rel="nofollow" target="_blank" href="https://github.com/pagecho"> Cho.</a></div></div></div><a class="show" id="rocket" href="#top"></a><script type="text/javascript" src="/js/totop.js?v=1.0.0" async></script><script type="text/javascript" src="//lib.baomitu.com/fancybox/latest/jquery.fancybox.min.js"></script><script type="text/javascript" src="/js/fancybox.js?v=1.0.0"></script><link rel="stylesheet" type="text/css" href="//lib.baomitu.com/fancybox/latest/jquery.fancybox.min.css"><script type="text/javascript" color="0,0,0" opacity="0.5" zIndex="-2" count="200" src="//lib.baomitu.com/canvas-nest.js/latest/canvas-nest.js"></script><script type="text/javascript" src="/js/copycode.js?v=1.0.0" successtext="复制成功!"></script><link rel="stylesheet" type="text/css" href="/css/copycode.css?v=1.0.0"><script type="text/javascript" src="/js/codeblock-resizer.js?v=1.0.0"></script><script type="text/javascript" src="/js/smartresize.js?v=1.0.0"></script></div></body></html>