Skip to content

Commit f466d00

Browse files
authored
BSM landing page style and content tweaks (boostorg#1967)
1 parent b35d550 commit f466d00

File tree

3 files changed

+54
-18
lines changed

3 files changed

+54
-18
lines changed

static/css/landing-style.css

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,13 @@ ul {}
3131
ul > li {padding-top:0.5rem;}
3232
ol {}
3333
ol > li {padding-top:0.5rem;}
34-
code,pre {font-family:'Courier New', Courier, monospace; font-size: 0.88rem; display:inline; color:green;}
34+
code, pre {
35+
font-family: monospace;
36+
font-size: 0.88rem;
37+
display: inline;
38+
font-weight: 500;
39+
color: #187645;
40+
}
3541

3642
.section {}
3743
.inset {padding-left:50px}

templates/marketing/whitepapers/_example.html

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ <h2>TECH OVERVIEW</h2>
3434
<h1 class="flex"><div class="logo"></div>Boost.Unordered: High-Performance Hash Containers for C++</h1>
3535
<h3>Understanding the Container Options</h3>
3636
<p>Boost.Unordered gives you 12 different hash container types to choose from, organized into three main families. Think of these as tools in your performance toolbox—each one is optimized for different situations.</p>
37-
<p><b>I. Closed-addressing containers</b> (like <code>boost::unordered_map</code> and <code>boost::unordered_set</code>) work exactly like <code>std::unordered</code> containers. You can drop them into existing code as faster replacements. They support C++11 and newer standards.</p>
37+
<p><b>I. Closed-addressing containers</b> (like <code>boost::unordered_map</code> and <code>boost::unordered_set</code>) work exactly like <code>std</code> unordered containers. You can drop them into existing code as faster replacements. They support C++11 and newer standards.</p>
3838
<p><b>II. Open-addressing containers are the speed champions. </b><code>boost::unordered_flat_map</code> and <code>boost::unordered_flat_set</code> store elements directly in the bucket array for maximum performance. If you need pointer stability (addresses that don't change), use <code>boost::unordered_node_map</code> and <code>boost::unordered_node_set</code> instead—they're slightly slower but still very fast.</p>
3939
<p><b>III. Concurrent containers</b> like <code>boost::concurrent_flat_map</code> and <code>boost::concurrent_flat_set</code> are designed for multithreaded programs where multiple threads need to access the same container safely.
4040
<h3>I. Closed-Addressing Containers: How boost::unordered_map Got So Fast</h3>
@@ -64,7 +64,6 @@ <h4>Choose boost::unordered_flat_map when:</h4>
6464
</ul>
6565
<h4>Stick with boost::unordered_map when:</h4>
6666
<ul><li>You need exact <code>std::unordered_map</code> compatibility</li>
67-
<li>You need pointer stability (pointers to elements that never change)</li>
6867
<li>You're using multimap or multiset variants</li>
6968
<li>Your hash functions aren't great</li>
7069
</ul>
@@ -136,19 +135,35 @@ <h3>Conclusion: By The Numbers</h3>
136135
<p><a href="https://www.boost.org/library/latest/unordered/" target="_blank">Unordered website page</a></p>
137136

138137
<p>Sources:</p>
139-
<p><a href="https://medium.com/@pavel.odintsov/boost-unordered-map-is-a-new-king-of-data-structures-292124d3ee2" target="_blank">https://medium.com/@pavel.odintsov/boost-unordered-map-is-a-new-king-of-data-structures-292124d3ee2</a></p>
138+
<p>
139+
<code>boost::unordered_map</code> is new king of data structures:<br>
140+
<a href="https://medium.com/@pavel.odintsov/boost-unordered-map-is-a-new-king-of-data-structures-292124d3ee2" target="_blank">https://medium.com/@pavel.odintsov/boost-unordered-map-is-a-new-king-of-data-structures-292124d3ee2</a>
141+
</p>
140142

141-
<p><a href="https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html" target="_blank">https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html</a></p>
143+
<p>
144+
Advancing the state of the art for <code>std::unordered_map</code> implementation:<br>
145+
<a href="https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html" target="_blank">https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html</a>
146+
</p>
142147

143-
<p><a href="https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html" target="_blank">https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html</a></p>
148+
<p>Inside <code>boost::unordered_flat_map</code>:<br>
149+
<a href="https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html" target="_blank">https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html</a>
150+
</p>
144151

145-
<p><a href="https://bannalia.blogspot.com/2023/07/inside-boostconcurrentflatmap.html?m=1" target="_blank">https://bannalia.blogspot.com/2023/07/inside-boostconcurrentflatmap.html?m=1</a></p>
152+
<p>Inside <code>boost::concurrent_flat_map</code>:<br>
153+
<a href="https://bannalia.blogspot.com/2023/07/inside-boostconcurrentflatmap.html?m=1" target="_blank">https://bannalia.blogspot.com/2023/07/inside-boostconcurrentflatmap.html?m=1</a>
154+
</p>
146155

147-
<p><a href="https://martin.ankerl.com/2022/08/27/hashmap-bench-01/" target="_blank">https://martin.ankerl.com/2022/08/27/hashmap-bench-01/</a></p>
156+
<p>Comprehensive C++ Hashmap Benchmarks 2022:<br>
157+
<a href="https://martin.ankerl.com/2022/08/27/hashmap-bench-01/" target="_blank">https://martin.ankerl.com/2022/08/27/hashmap-bench-01/</a>
158+
</p>
148159

149-
<p><a href="https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/" target="_blank">https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/</a></p>
160+
<p>An Extensive Benchmark of C and C++ Hash Tables:<br>
161+
<a href="https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/" target="_blank">https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/</a>
162+
</p>
150163

151-
<p><a href="https://artificial-mind.net/blog/2021/10/09/unordered-map-badness" target="_blank">https://artificial-mind.net/blog/2021/10/09/unordered-map-badness</a></p>
164+
<p>Measuring <code>std::unordered_map</code> Badness:<br>
165+
<a href="https://artificial-mind.net/blog/2021/10/09/unordered-map-badness" target="_blank">https://artificial-mind.net/blog/2021/10/09/unordered-map-badness</a>
166+
</p>
152167

153168
</body>
154169
</html>

templates/marketing/whitepapers/program_page/unordered.html

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ <h4>Choose boost::unordered_flat_map when:</h4>
6464
</ul>
6565
<h4>Stick with boost::unordered_map when:</h4>
6666
<ul><li>You need exact <code>std::unordered_map</code> compatibility</li>
67-
<li>You need pointer stability (pointers to elements that never change)</li>
6867
<li>You're using multimap or multiset variants</li>
6968
<li>Your hash functions aren't great</li>
7069
</ul>
@@ -136,19 +135,35 @@ <h3>Conclusion: By The Numbers</h3>
136135
<p><a href="https://www.boost.org/library/latest/unordered/" target="_blank">Unordered website page</a></p>
137136

138137
<p>Sources:</p>
139-
<p><a href="https://medium.com/@pavel.odintsov/boost-unordered-map-is-a-new-king-of-data-structures-292124d3ee2" target="_blank">https://medium.com/@pavel.odintsov/boost-unordered-map-is-a-new-king-of-data-structures-292124d3ee2</a></p>
138+
<p>
139+
<code>boost::unordered_map</code> is new king of data structures:<br>
140+
<a href="https://medium.com/@pavel.odintsov/boost-unordered-map-is-a-new-king-of-data-structures-292124d3ee2" target="_blank">https://medium.com/@pavel.odintsov/boost-unordered-map-is-a-new-king-of-data-structures-292124d3ee2</a>
141+
</p>
140142

141-
<p><a href="https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html" target="_blank">https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html</a></p>
143+
<p>
144+
Advancing the state of the art for <code>std::unordered_map</code> implementation:<br>
145+
<a href="https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html" target="_blank">https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html</a>
146+
</p>
142147

143-
<p><a href="https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html" target="_blank">https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html</a></p>
148+
<p>Inside <code>boost::unordered_flat_map</code>:<br>
149+
<a href="https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html" target="_blank">https://bannalia.blogspot.com/2022/11/inside-boostunorderedflatmap.html</a>
150+
</p>
144151

145-
<p><a href="https://bannalia.blogspot.com/2023/07/inside-boostconcurrentflatmap.html?m=1" target="_blank">https://bannalia.blogspot.com/2023/07/inside-boostconcurrentflatmap.html?m=1</a></p>
152+
<p>Inside <code>boost::concurrent_flat_map</code>:<br>
153+
<a href="https://bannalia.blogspot.com/2023/07/inside-boostconcurrentflatmap.html?m=1" target="_blank">https://bannalia.blogspot.com/2023/07/inside-boostconcurrentflatmap.html?m=1</a>
154+
</p>
146155

147-
<p><a href="https://martin.ankerl.com/2022/08/27/hashmap-bench-01/" target="_blank">https://martin.ankerl.com/2022/08/27/hashmap-bench-01/</a></p>
156+
<p>Comprehensive C++ Hashmap Benchmarks 2022:<br>
157+
<a href="https://martin.ankerl.com/2022/08/27/hashmap-bench-01/" target="_blank">https://martin.ankerl.com/2022/08/27/hashmap-bench-01/</a>
158+
</p>
148159

149-
<p><a href="https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/" target="_blank">https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/</a></p>
160+
<p>An Extensive Benchmark of C and C++ Hash Tables:<br>
161+
<a href="https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/" target="_blank">https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/</a>
162+
</p>
150163

151-
<p><a href="https://artificial-mind.net/blog/2021/10/09/unordered-map-badness" target="_blank">https://artificial-mind.net/blog/2021/10/09/unordered-map-badness</a></p>
164+
<p>Measuring <code>std::unordered_map</code> Badness:<br>
165+
<a href="https://artificial-mind.net/blog/2021/10/09/unordered-map-badness" target="_blank">https://artificial-mind.net/blog/2021/10/09/unordered-map-badness</a>
166+
</p>
152167

153168
</body>
154169
</html>

0 commit comments

Comments
 (0)