├── README.md ├── .github └── workflows │ └── jekyll.yml ├── index.html └── assets └── videos.json /README.md: -------------------------------------------------------------------------------- 1 | # C++ Weekly Videos 2 | 3 | This is the official database and viewer for C++ Weekly episodes 4 | 5 | published at: https://lefticus.github.io/cpp_weekly_videos/ 6 | -------------------------------------------------------------------------------- /.github/workflows/jekyll.yml: -------------------------------------------------------------------------------- 1 | name: Jekyll site CI 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Build the site in the jekyll/builder container 17 | run: | 18 | docker run \ 19 | -v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site \ 20 | jekyll/builder:latest /bin/bash -c "chmod 777 /srv/jekyll && jekyll build --future" 21 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Video Database For C++ Weekly 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /assets/videos.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "Video": "6GRSyiFhTI4", 4 | "Title": "Faster Compile Times with ChaiScript", 5 | "Date": "2015-09-17" 6 | }, 7 | { 8 | "Video": "EJtqHLvAIZE", 9 | "Title": "C++ Weekly - Ep 1 ChaiScript_Parser Initialization Refactor", 10 | "Date": "2016-03-08" 11 | }, 12 | { 13 | "Video": "B3WWsKFePiM", 14 | "Title": "C++ Weekly - Ep 2 Cost of Using Statics", 15 | "Date": "2016-03-14", 16 | "Tags": ["static", "C++11", "performance"], 17 | "CompilerExplorer": [], 18 | "QuickBench": [], 19 | "GitHub": [], 20 | "Documentation": [] 21 | }, 22 | { 23 | "Video": "OchPaGEH4TE", 24 | "Title": "C++ Weekly - Ep 3 Intro to clang-tidy", 25 | "Date": "2016-03-21" 26 | }, 27 | { 28 | "Video": "VXi0AOQ0PF0", 29 | "Title": "C++ Weekly - Ep 4 Variadic Template Refactor", 30 | "Date": "2016-03-28" 31 | }, 32 | { 33 | "Video": "CeHSHEZg-PQ", 34 | "Title": "C++ Weekly - Ep 5 Intro To ChaiScript", 35 | "Date": "2016-04-04" 36 | }, 37 | { 38 | "Video": "o1EvPhz6UNE", 39 | "Title": "C++ Weekly - Ep 6 Intro To Variadic Templates", 40 | "Date": "2016-04-11" 41 | }, 42 | { 43 | "Video": "GMqQOEZYVJQ", 44 | "Title": "C++ Weekly - Ep 7 Stop Using std::endl", 45 | "Date": "2016-04-18" 46 | }, 47 | { 48 | "Video": "uX99t7GmuDc", 49 | "Title": "C++ Weekly - Ep 8 C++ Name Demangling", 50 | "Date": "2016-04-25" 51 | }, 52 | { 53 | "Video": "iCL6GYoi1RU", 54 | "Title": "C++ Weekly - Ep 9 std::future Quick-Start", 55 | "Date": "2016-05-02" 56 | }, 57 | { 58 | "Video": "CU3VYN6xGzM", 59 | "Title": "C++ Weekly - Ep 10 Variadic Expansion Wrap-Up", 60 | "Date": "2016-05-08" 61 | }, 62 | { 63 | "Video": "ZgN1-i095QY", 64 | "Title": "C++ Weekly - Ep 11 std::future Part 2", 65 | "Date": "2016-05-16" 66 | }, 67 | { 68 | "Video": "vLhr_y4YOIY", 69 | "Title": "C++ Weekly - Ep 12 C++17's std::any", 70 | "Date": "2016-05-23" 71 | }, 72 | { 73 | "Video": "hErD6WGqPlA", 74 | "Title": "C++ Weekly - Ep 13 Fibonacci: You're Doing It Wrong", 75 | "Date": "2016-05-30" 76 | }, 77 | { 78 | "Video": "i3dK_ndZ72c", 79 | "Title": "C++ Weekly - Ep 14 Standard Library Gems: `next` and `exchange`", 80 | "Date": "2016-06-06" 81 | }, 82 | { 83 | "Video": "JtUZmkvroKg", 84 | "Title": "C++ Weekly - Ep 15 Using `std::bind`", 85 | "Date": "2016-06-13" 86 | }, 87 | { 88 | "Video": "ZlHi8txU4aQ", 89 | "Title": "C++ Weekly - Ep 16 Avoiding `std::bind`", 90 | "Date": "2016-06-20" 91 | }, 92 | { 93 | "Video": "GEbPRS81py4", 94 | "Title": "Ask C++ Weekly: `std::exchange` vs `std::swap`", 95 | "Date": "2016-06-23" 96 | }, 97 | { 98 | "Video": "z-kUhwANrIw", 99 | "Title": "C++ Weekly - Ep 17 C++17's `std::invoke`", 100 | "Date": "2016-06-27" 101 | }, 102 | { 103 | "Video": "qHgM5UdzPQU", 104 | "Title": "C++ Weekly - Ep 18 C++17's constexpr if", 105 | "Date": "2016-07-05" 106 | }, 107 | { 108 | "Video": "_Ny6Qbm_uMI", 109 | "Title": "C++ Weekly Special Edition - Using C++17's constexpr if", 110 | "Date": "2016-07-08" 111 | }, 112 | { 113 | "Video": "nLv_INgaLq8", 114 | "Title": "C++ Weekly - Ep 19 C++14 For The Commodore 64", 115 | "Date": "2016-07-11" 116 | }, 117 | { 118 | "Video": "nhk8pF_SlTk", 119 | "Title": "C++ Weekly - Ep 20 C++17's Fold Expressions - Introduction", 120 | "Date": "2016-07-18" 121 | }, 122 | { 123 | "Video": "AiXU5EuLZgc", 124 | "Title": "C++ Weekly - Ep 21 C++17's `if` and `switch` Init Statements", 125 | "Date": "2016-07-25" 126 | }, 127 | { 128 | "Video": "p32owQE_5u0", 129 | "Title": "C++ Weekly - Ep 22 C++17's Nested Namespaces and `std::clamp`", 130 | "Date": "2016-08-01" 131 | }, 132 | { 133 | "Video": "miODwx7gv6o", 134 | "Title": "C++ Weekly - Ep 23 C++17's __has_include", 135 | "Date": "2016-08-08" 136 | }, 137 | { 138 | "Video": "aBZlbb9sE-g", 139 | "Title": "C++ Weekly - Ep 24 C++17's Structured Bindings", 140 | "Date": "2016-08-15" 141 | }, 142 | { 143 | "Video": "qMqWoT016cA", 144 | "Title": "C++ Weekly - Ep 25 C++17's Aggregate Initializations", 145 | "Date": "2016-08-22" 146 | }, 147 | { 148 | "Video": "uCRkBXQhud0", 149 | "Title": "C++ Weekly - Ep 26 Language Features Removed in C++17", 150 | "Date": "2016-08-29" 151 | }, 152 | { 153 | "Video": "QlI65u6MPL8", 154 | "Title": "C++ Weekly - Ep 27 - C++17 Changes To Sequence Containers", 155 | "Date": "2016-09-06" 156 | }, 157 | { 158 | "Video": "heTklAyLLRQ", 159 | "Title": "C++ Weekly - Ep 28 - C++17's [[fallthrough]] Attribute", 160 | "Date": "2016-09-12" 161 | }, 162 | { 163 | "Video": "vZLc7BXSLXE", 164 | "Title": "[Re-upload] C++ Weekly - Ep 28 - C++17's [[fallthrough]] Attribute", 165 | "Date": "2016-09-12", 166 | "CompilerExplorer": ["https://godbolt.org/z/qn1qMv"], 167 | "Documentation": ["http://eel.is/c++draft/dcl.attr.fallthrough", "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0188r1.pdf", "https://en.cppreference.com/w/cpp/language/attributes/fallthrough"] 168 | 169 | }, 170 | { 171 | "Video": "WSPmNL9834U", 172 | "Title": "C++ Weekly - Ep 29 - C++17's [[maybe_unused]] Attribute", 173 | "Date": "2016-09-20" 174 | }, 175 | { 176 | "Video": "l_5PF3GQLKc", 177 | "Title": "C++ Weekly - Ep 30 - C++17's [[nodiscard]] Attribute", 178 | "Date": "2016-09-26" 179 | }, 180 | { 181 | "Video": "HIutsKjCUeA", 182 | "Title": "Commodore 64 Column Shimmer After Transport", 183 | "Date": "2016-09-27" 184 | }, 185 | { 186 | "Video": "RWavTVo7D3M", 187 | "Title": "C++ Weekly Special Edition - Borland Turbo C++ 3.0 Review", 188 | "Date": "2016-09-30" 189 | }, 190 | { 191 | "Video": "HB__A7-tu2U", 192 | "Title": "C++ Weekly - Ep 31 - IncludeOS", 193 | "Date": "2016-10-03" 194 | }, 195 | { 196 | "Video": "7vKv6MJUNZY", 197 | "Title": "C++ Weekly Special Edition - Borland Turbo C++ 3.0 Review - Part 2", 198 | "Date": "2016-10-07" 199 | }, 200 | { 201 | "Video": "_CbBfuQQQI8", 202 | "Title": "C++ Weekly - Ep 32 - Lambdas For Free", 203 | "Date": "2016-10-10" 204 | }, 205 | { 206 | "Video": "3Ud9HryMUqA", 207 | "Title": "C++ Weekly SE - g++ 2.4.5 (1993) Review", 208 | "Date": "2016-10-14" 209 | }, 210 | { 211 | "Video": "-qNNAMH9LHA", 212 | "Title": "C++ Weekly - Ep 33 - Start Using Default Member Initializers", 213 | "Date": "2016-10-17" 214 | }, 215 | { 216 | "Video": "tr-D10nQedc", 217 | "Title": "C++ Weekly SE - Visual C++ 1.52 (1993) Review", 218 | "Date": "2016-10-21" 219 | }, 220 | { 221 | "Video": "my39Gpt6bvY", 222 | "Title": "C++ Weekly - Ep 34 - Reading Assembly Language - Part 1", 223 | "Date": "2016-10-24" 224 | }, 225 | { 226 | "Video": "R3HZJ1h2BVY", 227 | "Title": "C++ Weekly - Ep 35 - Reading Assembly Language - Part 2", 228 | "Date": "2016-10-31" 229 | }, 230 | { 231 | "Video": "KpH6ypYfoNs", 232 | "Title": "C++ Weekly - Ep 36 - Reading Assembly Language - Part 3", 233 | "Date": "2016-11-07" 234 | }, 235 | { 236 | "Video": "_1X9D8Z5huA", 237 | "Title": "C++ Weekly - Ep 37 - Stateful Lambdas", 238 | "Date": "2016-11-14" 239 | }, 240 | { 241 | "Video": "dEBQL4KPSk8", 242 | "Title": "C++ Weekly - Ep 38 - C++17's Class Template Argument Type Deduction", 243 | "Date": "2016-11-21" 244 | }, 245 | { 246 | "Video": "-3fVp0U4xi0", 247 | "Title": "C++ Weekly - Ep 39 - C++17's Deduction Guides", 248 | "Date": "2016-11-28" 249 | }, 250 | { 251 | "Video": "W-xTpqj31mI", 252 | "Title": "C++ Weekly - Ep 40 - Inheriting From Lambdas", 253 | "Date": "2016-12-05" 254 | }, 255 | { 256 | "Video": "kmza9U_niq4", 257 | "Title": "C++ Weekly - Ep 41 - C++17's constexpr Lambda Support", 258 | "Date": "2016-12-12" 259 | }, 260 | { 261 | "Video": "FWD1msG8YU4", 262 | "Title": "C++ Weekly - Ep 42 - Clang's Heap Elision", 263 | "Date": "2016-12-19" 264 | }, 265 | { 266 | "Video": "5e3m2cppQ6M", 267 | "Title": "C++ Weekly - Ep 43 - Stack Elision?", 268 | "Date": "2016-12-26" 269 | }, 270 | { 271 | "Video": "rpn_5Mrrxf8", 272 | "Title": "C++ Weekly - Ep 44 - constexpr Compile Time Random", 273 | "Date": "2017-01-02" 274 | }, 275 | { 276 | "Video": "3SXML1-Ty5U", 277 | "Title": "C++ Weekly - Ep 45 - Compile Time Maze Generator (and Solver)", 278 | "Date": "2017-01-09" 279 | }, 280 | { 281 | "Video": "yRxty2FqGn4", 282 | "Title": "C++ Weekly - Ep 45 - Compile Time Maze Generator (and Solver)", 283 | "Date": "2017-01-09" 284 | }, 285 | { 286 | "Video": "yTAHfKGMOEM", 287 | "Title": "C++ Weekly - Ep 46 - Start Using Visual C++", 288 | "Date": "2017-01-17" 289 | }, 290 | { 291 | "Video": "SnTV5BU9x6k", 292 | "Title": "C++ Weekly - Ep 47 - My Visual C++ Pet Peeve", 293 | "Date": "2017-01-23" 294 | }, 295 | { 296 | "Video": "1gNzhE-Tn40", 297 | "Title": "C++ Weekly - Ep 48 - C++17's Variadic `using`", 298 | "Date": "2017-01-30" 299 | }, 300 | { 301 | "Video": "PPAlh_FmO4M", 302 | "Title": "C++ Weekly SE - Why -0xFFFFFFFF == 1", 303 | "Date": "2017-02-01" 304 | }, 305 | { 306 | "Video": "3wm5QzdddYc", 307 | "Title": "C++ Weekly - Ep 49 - Why Inherit From Lambdas?", 308 | "Date": "2017-02-06" 309 | }, 310 | { 311 | "Video": "QsicIaOGsI4", 312 | "Title": "C++ Weekly - Ep 50 - Inheriting Lambdas vs Generic Lambdas", 313 | "Date": "2017-02-13" 314 | }, 315 | { 316 | "Video": "GeLp4F-Svc8", 317 | "Title": "C++ Weekly - Ep 51 - Advanced Stateful Lambdas", 318 | "Date": "2017-02-20" 319 | }, 320 | { 321 | "Video": "aMpCr8yXUaM", 322 | "Title": "C++ Weekly - Ep 52 - C++ To C Compilation", 323 | "Date": "2017-02-27" 324 | }, 325 | { 326 | "Video": "lW51OrNJAn8", 327 | "Title": "C++ Weekly - Ep 53 - Gotos Are Everywhere", 328 | "Date": "2017-03-06" 329 | }, 330 | { 331 | "Video": "8pswWvQqqmA", 332 | "Title": "C++ Weekly - Ep 54 - Zero Cost Embedded C++ - Part 1", 333 | "Date": "2017-03-13" 334 | }, 335 | { 336 | "Video": "YJzIcmD7IsY", 337 | "Title": "C++ Weekly - Ep 54 - Zero Cost Embedded C++ - Part 1", 338 | "Date": "2017-03-14" 339 | }, 340 | { 341 | "Video": "x57KZWyNTqo", 342 | "Title": "C++ Weekly - Ep 55 - Zero Cost Embedded C++ - Part 2", 343 | "Date": "2017-03-20" 344 | }, 345 | { 346 | "Video": "kPqkPmpxya0", 347 | "Title": "C++ Weekly - Ep 56 - Zero Cost Embedded C++ - Part 3", 348 | "Date": "2017-03-27" 349 | }, 350 | { 351 | "Video": "yRKRqzekLU4", 352 | "Title": "C++ Weekly - Ep 57 - Dissecting An Optimization", 353 | "Date": "2017-04-03" 354 | }, 355 | { 356 | "Video": "fRzF7NSF1II", 357 | "Title": "C++ Weekly - Ep 58 - Negative Cost Embedded C++ - Part 1", 358 | "Date": "2017-04-10" 359 | }, 360 | { 361 | "Video": "u615he5wdeo", 362 | "Title": "C++ Weekly - Ep 59 - Negative Cost Embedded C++ - Part 2", 363 | "Date": "2017-04-17" 364 | }, 365 | { 366 | "Video": "Mu-GUZuU31A", 367 | "Title": "C++ Weekly - Ep 60 - std::quoted", 368 | "Date": "2017-04-24" 369 | }, 370 | { 371 | "Video": "WUvF4W98vq4", 372 | "Title": "C++ Weekly - Ep 61 - Storage Duration with Lambdas", 373 | "Date": "2017-05-01" 374 | }, 375 | { 376 | "Video": "IOxKjqC1Ozo", 377 | "Title": "C++ Weekly - Ep 62 - std::regex", 378 | "Date": "2017-05-08" 379 | }, 380 | { 381 | "Video": "18v-fb_TepU", 382 | "Title": "C++ Weekly - Ep 63 - What is Negative Zero?", 383 | "Date": "2017-05-15" 384 | }, 385 | { 386 | "Video": "z_fnMdzfWAQ", 387 | "Title": "C++ Weekly - Ep 64 - C++11's std::min (and my version)", 388 | "Date": "2017-05-22" 389 | }, 390 | { 391 | "Video": "VXgTKrSS1-c", 392 | "Title": "C++ Weekly - Ep 65 - C++11's std::fmin", 393 | "Date": "2017-05-29" 394 | }, 395 | { 396 | "Video": "Mzi5SHi13MM", 397 | "Title": "C++ Weekly - Ep 66 - Variadic fmin for C++11", 398 | "Date": "2017-06-05" 399 | }, 400 | { 401 | "Video": "akak2jYXOVg", 402 | "Title": "C++ Weekly - Ep 67 - C++17's std::gcd and std::lcm", 403 | "Date": "2017-06-12" 404 | }, 405 | { 406 | "Video": "fW69R_BtHmU", 407 | "Title": "C++ Weekly - Ep 68 - std::iota", 408 | "Date": "2017-06-19" 409 | }, 410 | { 411 | "Video": "YUCW_MnksjQ", 412 | "Title": "C++ Weekly - Ep 69 - C++17's Searchers", 413 | "Date": "2017-06-26" 414 | }, 415 | { 416 | "Video": "d4nmNYTM1j8", 417 | "Title": "C++ Weekly - Ep 70 - C++ IIFE in quick-bench.com", 418 | "Date": "2017-07-03" 419 | }, 420 | { 421 | "Video": "HeyB-DkAqWo", 422 | "Title": "C++ Weekly - Ep 71 - Hidden C++ 17 - Part 1 (Fixed Video Quality)", 423 | "Date": "2017-07-10" 424 | }, 425 | { 426 | "Video": "TXin7Nz9Knw", 427 | "Title": "C++ Weekly - Ep 71 - Hidden C++ 17 - Part 1", 428 | "Date": "2017-07-10" 429 | }, 430 | { 431 | "Video": "K2q39qt1gx0", 432 | "Title": "C++ Weekly - Ep 72 - Hidden C++17 - Part 2", 433 | "Date": "2017-07-17" 434 | }, 435 | { 436 | "Video": "fj_CF8xK760", 437 | "Title": "C++ Weekly - Ep 73 - std::string_view", 438 | "Date": "2017-07-24" 439 | }, 440 | { 441 | "Video": "7hfSyxNxFfo", 442 | "Title": "C++ Weekly - Ep 74 - std::regex optimize", 443 | "Date": "2017-07-31" 444 | }, 445 | { 446 | "Video": "ZKaoR3dP9uM", 447 | "Title": "C++ Weekly - Ep 75 - Why You Cannot Move From Const", 448 | "Date": "2017-08-07" 449 | }, 450 | { 451 | "Video": "61w4LbQ0fzU", 452 | "Title": "C++ Weekly - Ep 76 - static_print", 453 | "Date": "2017-08-14" 454 | }, 455 | { 456 | "Video": "yHrC_rZUaiA", 457 | "Title": "C++ Weekly - Ep 77 - G++ 7.1 for DOS", 458 | "Date": "2017-08-21" 459 | }, 460 | { 461 | "Video": "HPMvU64RUTY", 462 | "Title": "C++ Weekly - Ep 78 - Intro to CMake", 463 | "Date": "2017-08-28" 464 | }, 465 | { 466 | "Video": "3ulKzD2cmSw", 467 | "Title": "C++ Weekly - Ep 79 - Intro To Travis CI", 468 | "Date": "2017-09-04" 469 | }, 470 | { 471 | "Video": "R8OrWVVf5CM", 472 | "Title": "C++ Weekly - Ep 80 - Intro to AppVeyor", 473 | "Date": "2017-09-11" 474 | }, 475 | { 476 | "Video": "ee_ITrcmjf0", 477 | "Title": "C++ Weekly - Ep 81 - Basic Computer Architecture", 478 | "Date": "2017-09-18" 479 | }, 480 | { 481 | "Video": "ZlMbqFcJEzA", 482 | "Title": "C++ Weekly - Ep 82 - Intro To CTest", 483 | "Date": "2017-09-25" 484 | }, 485 | { 486 | "Video": "I2cKVRzJhS0", 487 | "Title": "C++ Weekly - Ep 83 - Installing Compiler Explorer", 488 | "Date": "2017-09-29" 489 | }, 490 | { 491 | "Video": "MB6NPkB4YVs", 492 | "Title": "C++ Weekly - Ep 84 - C++ Sanitizers", 493 | "Date": "2017-10-09" 494 | }, 495 | { 496 | "Video": "gO0KBoqkOoU", 497 | "Title": "C++ Weekly - Ep 85 - Fuzz Testing", 498 | "Date": "2017-10-16" 499 | }, 500 | { 501 | "Video": "3l0BQs2ThTo", 502 | "Title": "C++ Weekly - Ep 86 - Valgrind", 503 | "Date": "2017-10-23" 504 | }, 505 | { 506 | "Video": "PiaZkNp_fIM", 507 | "Title": "C++ Weekly - Ep 87 - std::optional", 508 | "Date": "2017-10-30" 509 | }, 510 | { 511 | "Video": "VZTVmKOXLVU", 512 | "Title": "C++ Weekly - Ep 88 - Don't Forget About puts", 513 | "Date": "2017-11-07" 514 | }, 515 | { 516 | "Video": "OmKMNQFx_8Y", 517 | "Title": "C++ Weekly - Ep 89 - Overusing Lambdas", 518 | "Date": "2017-11-13" 519 | }, 520 | { 521 | "Video": "FOcCFGkkQ9c", 522 | "Title": "C++ Weekly - Ep 90 - Using Codecov and Project Badges", 523 | "Date": "2017-11-20" 524 | }, 525 | { 526 | "Video": "-amJL3AyADI", 527 | "Title": "C++ Weekly - Ep 91 - Using Lippincott Functions", 528 | "Date": "2017-11-27" 529 | }, 530 | { 531 | "Video": "vmtGCJbNKNE", 532 | "Title": "C++ Weekly - Ep 92 - function-try-blocks", 533 | "Date": "2017-12-04" 534 | }, 535 | { 536 | "Video": "sbiF1HDcG7U", 537 | "Title": "C++ Weekly - Ep 93 - Custom Comparators for Containers", 538 | "Date": "2017-12-11" 539 | }, 540 | { 541 | "Video": "dvLKY-oWqn0", 542 | "Title": "C++ Weekly - Ep 94 - Lambdas as Comparators", 543 | "Date": "2017-12-18" 544 | }, 545 | { 546 | "Video": "BBUacofxOP8", 547 | "Title": "C++ Weekly - Ep 95 - Transparent Comparators", 548 | "Date": "2017-12-25" 549 | }, 550 | { 551 | "Video": "P6_6bXPGYy8", 552 | "Title": "C++ Weekly - Ep 96 - Transparent Lambda Comparators", 553 | "Date": "2018-01-01" 554 | }, 555 | { 556 | "Video": "Cmk0Tlo1eCA", 557 | "Title": "C++ Weekly - Ep 97 - Lambda To Function Pointer Conversion", 558 | "Date": "2018-01-08" 559 | }, 560 | { 561 | "Video": "vLozydgjHrc", 562 | "Title": "C++ Weekly - Ep 98 - Precision Loss with Accumulate", 563 | "Date": "2018-01-15" 564 | }, 565 | { 566 | "Video": "w0rE7GqRPes", 567 | "Title": "C++ Weekly - Ep 99 - C++ 20's Default Bit-field Member Initializers", 568 | "Date": "2018-01-22" 569 | }, 570 | { 571 | "Video": "2gjroKLyWKE", 572 | "Title": "C++ Weekly - Ep 100 - All The Assignment Operators", 573 | "Date": "2018-01-29" 574 | }, 575 | { 576 | "Video": "zMrP8heIz3g", 577 | "Title": "C++ Weekly - Ep 101 - Learning \"Modern\" C++ - 1: The Tools", 578 | "Date": "2018-02-05" 579 | }, 580 | { 581 | "Video": "juJaaCf_yKc", 582 | "Title": "C++ Weekly - Ep 102 - Learning \"Modern C++\" - 2: Hello World", 583 | "Date": "2018-02-12" 584 | }, 585 | { 586 | "Video": "43qyUASBeUc", 587 | "Title": "C++ Weekly - Ep 103 - Learning \"Modern\" C++ - 3: Inheritance", 588 | "Date": "2018-02-19" 589 | }, 590 | { 591 | "Video": "UYEyHlynkPc", 592 | "Title": "C++ Weekly - Ep 104 - Learning \"Modern\" C++ - 4 : const and constexpr", 593 | "Date": "2018-02-26" 594 | }, 595 | { 596 | "Video": "A0-x-Djey-Q", 597 | "Title": "C++ Weekly - Ep 105 - Learning \"Modern\" C++ - 5: Looping and Algorithms", 598 | "Date": "2018-03-05" 599 | }, 600 | { 601 | "Video": "nP3TnWBonlY", 602 | "Title": "C++ Weekly - Ep 106 - Disabling Move From const", 603 | "Date": "2018-03-12" 604 | }, 605 | { 606 | "Video": "aAvjUU0m6AU", 607 | "Title": "C++ Weekly - Ep 107 - The Power of =delete", 608 | "Date": "2018-03-19" 609 | }, 610 | { 611 | "Video": "uwv1uvi1OTU", 612 | "Title": "C++ Weekly - Ep 108 - Understanding emplace_back", 613 | "Date": "2018-03-26" 614 | }, 615 | { 616 | "Video": "AG_63_edgUg", 617 | "Title": "C++ Weekly - Ep 109 - When noexcept Really Matters", 618 | "Date": "2018-04-02" 619 | }, 620 | { 621 | "Video": "em842geJhfk", 622 | "Title": "C++ Weekly - Ep 110 - gdbgui", 623 | "Date": "2018-04-09" 624 | }, 625 | { 626 | "Video": "NRCnS5alouI", 627 | "Title": "C++ Weekly - Ep 111 - kcov", 628 | "Date": "2018-04-16" 629 | }, 630 | { 631 | "Video": "S9_mYmvO4Ow", 632 | "Title": "C++ Weekly - Ep 112 - GCC's Leaky Abstractions", 633 | "Date": "2018-04-23" 634 | }, 635 | { 636 | "Video": "SbS_RP5fGSE", 637 | "Title": "C++ Weekly - Ep 113 - Will It C++? Atari Touch Me From 1978", 638 | "Date": "2018-04-30" 639 | }, 640 | { 641 | "Video": "mMvTXcxkPcA", 642 | "Title": "C++ Weekly - Ep 114 - cpp_starter_project GUI Additions", 643 | "Date": "2018-05-07" 644 | }, 645 | { 646 | "Video": "UYcRvU9UO40", 647 | "Title": "C++ Weekly - Ep 115 - Compile Time ARM Emulator", 648 | "Date": "2018-05-14" 649 | }, 650 | { 651 | "Video": "9cCQHJ-cNHY", 652 | "Title": "C++ Weekly - Ep 116 - Trying Out The Conan Package Manager", 653 | "Date": "2018-05-21" 654 | }, 655 | { 656 | "Video": "O2_N8OzPGWQ", 657 | "Title": "C++ Weekly - Ep 117 - Trying Out The Hunter Package Manager", 658 | "Date": "2018-05-28" 659 | }, 660 | { 661 | "Video": "KOeOLOu6nHw", 662 | "Title": "C++ Weekly - Ep 118 - Trying Out The vcpkg Package Manager", 663 | "Date": "2018-06-04" 664 | }, 665 | { 666 | "Video": "FwsO12x8nyM", 667 | "Title": "C++ Weekly - Ep 119 - Negative Cost Structs", 668 | "Date": "2018-06-11" 669 | }, 670 | { 671 | "Video": "tV61e2-Xd4k", 672 | "Title": "C++ Weekly - Ep 120 - Will It C++? The Tandy 1000 From 1984", 673 | "Date": "2018-06-18" 674 | }, 675 | { 676 | "Video": "tODCIrUat78", 677 | "Title": "C++ Weekly - Ep 121 - Strict Aliasing In The Real world", 678 | "Date": "2018-06-25" 679 | }, 680 | { 681 | "Video": "2eCV_udkP_o", 682 | "Title": "C++ Weekly - Ep 122 - `constexpr` With `optional` And `variant`", 683 | "Date": "2018-07-02" 684 | }, 685 | { 686 | "Video": "Fs2nhjIysKA", 687 | "Title": "C++ Weekly - Ep 123 - Using in_place_t", 688 | "Date": "2018-07-09" 689 | }, 690 | { 691 | "Video": "i0wrcw8W75w", 692 | "Title": "C++ Weekly - Ep 124 - ABM and BMI Instruction Sets", 693 | "Date": "2018-07-16" 694 | }, 695 | { 696 | "Video": "9mWWNYRHAIQ", 697 | "Title": "C++ Weekly - Ep 125 - The Optimal Way To Return From A Function", 698 | "Date": "2018-07-23" 699 | }, 700 | { 701 | "Video": "9L9uSHrJA08", 702 | "Title": "C++ Weekly - Ep 126 - Lambdas With Destructors", 703 | "Date": "2018-07-30" 704 | }, 705 | { 706 | "Video": "44rs_hX1dxE", 707 | "Title": "C++ Weekly - Ep 127 - C++20's Designated Initializers", 708 | "Date": "2018-08-06" 709 | }, 710 | { 711 | "Video": "ixGiE4-1GA8", 712 | "Title": "C++ Weekly - Ep 128 - C++20's Template Syntax For Lambdas", 713 | "Date": "2018-08-13" 714 | }, 715 | { 716 | "Video": "GeimpPHYYPk", 717 | "Title": "C++ Weekly - Ep 129 - The One Feature I'd Remove From C++", 718 | "Date": "2018-08-20" 719 | }, 720 | { 721 | "Video": "gqhHbhBoDtw", 722 | "Title": "C++ Weekly - Ep 130 - C++20's for init-statements", 723 | "Date": "2018-08-27" 724 | }, 725 | { 726 | "Video": "eMluWRp5hbI", 727 | "Title": "C++ Weekly - Ep 131 - Literals in ARM Assembly", 728 | "Date": "2018-09-03" 729 | }, 730 | { 731 | "Video": "QhY7Fx-YsGs", 732 | "Title": "C++ Weekly - Ep 132 - Lambdas In Fold Expressions", 733 | "Date": "2018-09-10" 734 | }, 735 | { 736 | "Video": "br4tez2G9eM", 737 | "Title": "C++ Weekly - Ep 133 - What Exactly IS A Lambda Anyhow?", 738 | "Date": "2018-09-17" 739 | }, 740 | { 741 | "Video": "EsUmnLgz8QY", 742 | "Title": "C++ Weekly - Ep 134 - The Best Possible Way To Create A Visitor?", 743 | "Date": "2018-09-24" 744 | }, 745 | { 746 | "Video": "KeS1ehp9IiI", 747 | "Title": "C++ Weekly - Ep 135 - {fmt} is Addictive! Using {fmt} and spdlog", 748 | "Date": "2018-10-01" 749 | }, 750 | { 751 | "Video": "GldFtXZkgYo", 752 | "Title": "C++ Weekly - Ep 136 - How `inline` Might Affect The Optimizer", 753 | "Date": "2018-10-08" 754 | }, 755 | { 756 | "Video": "AUT201AXeJg", 757 | "Title": "C++ Weekly - Ep 137 - C++ Is Not An Object Oriented Language", 758 | "Date": "2018-10-15" 759 | }, 760 | { 761 | "Video": "2HRqtx859ks", 762 | "Title": "C++ Weekly - Ep 138 - Will It C++? MIPS Architecture (1985)", 763 | "Date": "2018-10-22" 764 | }, 765 | { 766 | "Video": "0QOxC7ADT80", 767 | "Title": "C++ Weekly - Ep 139 - References To Pointers", 768 | "Date": "2018-10-29" 769 | }, 770 | { 771 | "Video": "lHGR_kH0PNA", 772 | "Title": "C++ Weekly - Ep 140 - Use `cout`, `cerr`, and `clog` Correctly", 773 | "Date": "2018-11-05" 774 | }, 775 | { 776 | "Video": "L8Egig4qH0I", 777 | "Title": "C++ Weekly - Ep 141 - C++20's Designated Initializers And Lambdas", 778 | "Date": "2018-11-12" 779 | }, 780 | { 781 | "Video": "WhOdvwRku9Y", 782 | "Title": "C++ Weekly - Ep 142 - Short Circuiting With Logical Operators", 783 | "Date": "2018-11-19" 784 | }, 785 | { 786 | "Video": "ub4bVs8ixko", 787 | "Title": "C++ Weekly - Ep 143 - GNU Function Attributes", 788 | "Date": "2018-11-26" 789 | }, 790 | { 791 | "Video": "8ZxGABHcu40", 792 | "Title": "C++ Weekly - Ep 144 - Pure Functions in C++", 793 | "Date": "2018-12-03" 794 | }, 795 | { 796 | "Video": "1FAcPvb0ZjU", 797 | "Title": "C++ Weekly - Ep 145 - Semi-Automatic `constexpr` and `noexcept`", 798 | "Date": "2018-12-10" 799 | }, 800 | { 801 | "Video": "ka7yYnxV1l8", 802 | "Title": "C++ Weekly - Ep 146 - C++20's std::to_pointer", 803 | "Date": "2018-12-17" 804 | }, 805 | { 806 | "Video": "ZsKdRtQM7EA", 807 | "Title": "C++ Weekly - Ep 147 - C++ And Python Tooling", 808 | "Date": "2018-12-24" 809 | }, 810 | { 811 | "Video": "oxpsHk1yq88", 812 | "Title": "C++ Weekly - Ep 148 - clang-tidy Checks To Avoid", 813 | "Date": "2018-12-31" 814 | }, 815 | { 816 | "Video": "JxYD8_OHQg8", 817 | "Title": "C++ Weekly - Ep 149 - C++20's Lambda Usability Changes", 818 | "Date": "2019-01-07" 819 | }, 820 | { 821 | "Video": "XhxV1NP5RGs", 822 | "Title": "C++ Weekly - Ep 150 - C++20's Lambdas For Resource Management", 823 | "Date": "2019-01-14" 824 | }, 825 | { 826 | "Video": "damrgf7GJac", 827 | "Title": "C++ Weekly - Ep 151 - C++20's Lambdas As Custom Comparators", 828 | "Date": "2019-01-21" 829 | }, 830 | { 831 | "Video": "WOkRj6xspR4", 832 | "Title": "Thinkpad 13 Keyboard Swap", 833 | "Date": "2019-01-26" 834 | }, 835 | { 836 | "Video": "CjExHyCVRYg", 837 | "Title": "C++ Weekly - Ep 152 - Lambdas: The Key To Understanding C++", 838 | "Date": "2019-01-28" 839 | }, 840 | { 841 | "Video": "JRmL0g87cc0", 842 | "Title": "C++ Weekly - Ep 153 - 24-Core C++ Builds Using Spare Computers!", 843 | "Date": "2019-02-04" 844 | }, 845 | { 846 | "Video": "D8eCPl2zit4", 847 | "Title": "C++ Weekly - Ep 154 - One Simple Trick For Reducing Code Bloat", 848 | "Date": "2019-02-11" 849 | }, 850 | { 851 | "Video": "FR5G_miCHtE", 852 | "Title": "C++ Weekly - Ep 155 - Misuse of pure Function Attribute", 853 | "Date": "2019-02-18" 854 | }, 855 | { 856 | "Video": "9ENXVGFk0s4", 857 | "Title": "C++ Weekly - Ep 156 - A C++ Conference Near You", 858 | "Date": "2019-02-25" 859 | }, 860 | { 861 | "Video": "hCGadTsT0S0", 862 | "Title": "C++ Weekly - Ep 157 - Never Overload Operator && or ||", 863 | "Date": "2019-03-04" 864 | }, 865 | { 866 | "Video": "_4D1y_KyEzA", 867 | "Title": "C++ Weekly - Ep 158 - Getting The Most Out Of Your CPU", 868 | "Date": "2019-03-11" 869 | }, 870 | { 871 | "Video": "JXJg_XMJFW0", 872 | "Title": "C++ Weekly - Ep 159 - `constexpr` `virtual` Members In C++20", 873 | "Date": "2019-03-18" 874 | }, 875 | { 876 | "Video": "agS-h_eaLj8", 877 | "Title": "C++ Weekly - Ep 160 - Argument Dependent Lookup (ADL)", 878 | "Date": "2019-03-25" 879 | }, 880 | { 881 | "Video": "imuINhOrjFw", 882 | "Title": "C++ Weekly - Ep 161 - The C++ Box Project", 883 | "Date": "2019-04-01" 884 | }, 885 | { 886 | "Video": "M_Mrk1xHMoo", 887 | "Title": "C++ Weekly - Ep 162 - Recursive Lambdas", 888 | "Date": "2019-04-08" 889 | }, 890 | { 891 | "Video": "5DlzeTcpXNQ", 892 | "Title": "C++ Weekly - Ep 163 - Practicing ARM Assembly", 893 | "Date": "2019-04-15" 894 | }, 895 | { 896 | "Video": "1WAn2v1Hr6A", 897 | "Title": "C++ Weekly - Ep 164 - Adding a Random Device To The C++ Box", 898 | "Date": "2019-04-22" 899 | }, 900 | { 901 | "Video": "nkhhV5uSSLk", 902 | "Title": "C++ Weekly - Ep 165 - C++20's is_constant_evaluated()", 903 | "Date": "2019-04-29" 904 | }, 905 | { 906 | "Video": "YGAX509TCQs", 907 | "Title": "C++ Weekly - Ep 166 - C++20's Uniform Container Erasure", 908 | "Date": "2019-05-06" 909 | }, 910 | { 911 | "Video": "L0YG2x7E87w", 912 | "Title": "C++ Weekly - Ep 167 - What Is Variable Shadowing?", 913 | "Date": "2019-05-13" 914 | }, 915 | { 916 | "Video": "IOo8gTDMFkM", 917 | "Title": "C++ Weekly - Ep 168 - Discovering Warnings You Should Be Using", 918 | "Date": "2019-05-20" 919 | }, 920 | { 921 | "Video": "B2VbVf6uLq4", 922 | "Title": "C++ Weekly - Ep 169 - C++20 Aggregates With User Defined Constructors", 923 | "Date": "2019-05-27" 924 | }, 925 | { 926 | "Video": "m7hwL0gHuP4", 927 | "Title": "C++ Weekly - Ep 170 - C++17's `inline` Variables", 928 | "Date": "2019-06-03" 929 | }, 930 | { 931 | "Video": "UwYYc5dpvqk", 932 | "Title": "C++ Weekly - Ep 171 - C++20's Parameter Packs In Captures", 933 | "Date": "2019-06-10" 934 | }, 935 | { 936 | "Video": "4h8IOiu-K1c", 937 | "Title": "C++ Weekly - Ep 172 - Execution Support in Compiler Explorer", 938 | "Date": "2019-06-17" 939 | }, 940 | { 941 | "Video": "78Y_LRZPVRg", 942 | "Title": "C++ Weekly - Ep 173 - The Important Parts of C++98 in 13 Minutes", 943 | "Date": "2019-06-24" 944 | }, 945 | { 946 | "Video": "7pqPfQ_HpmI", 947 | "Title": "C++ Weekly - Ep 174 - C++20's `std::bind_front`", 948 | "Date": "2019-07-01" 949 | }, 950 | { 951 | "Video": "0SeUPb8LC9I", 952 | "Title": "C++ Weekly - Ep 175 - Spaceships in C++20: operator 〈=〉", 953 | "Date": "2019-07-08" 954 | }, 955 | { 956 | "Video": "D5n6xMUKU3A", 957 | "Title": "C++ Weekly - Ep 176 - Important Parts of C++11 in 12 Minutes", 958 | "Date": "2019-07-15" 959 | }, 960 | { 961 | "Video": "fLeHy7s1WIo", 962 | "Title": "C++ Weekly - Ep 177 - `std::bind_front` Implemented With Lambdas", 963 | "Date": "2019-07-22" 964 | }, 965 | { 966 | "Video": "mXxNvaEdNHI", 967 | "Title": "C++ Weekly - Ep 178 - The Important Parts of C++14 In 9 Minutes", 968 | "Date": "2019-07-29" 969 | }, 970 | { 971 | "Video": "yCEG30yQS5w", 972 | "Title": "C++ Weekly - Ep 179 - Power C - A Native C Compiler for the Commodore 64", 973 | "Date": "2019-08-05" 974 | }, 975 | { 976 | "Video": "JqhbzY04VlE", 977 | "Title": "C++ Weekly - Ep 180 - Whitespace Is Meaningless", 978 | "Date": "2019-08-12" 979 | }, 980 | { 981 | "Video": "s2Kqcn5e73c", 982 | "Title": "C++ Weekly - Ep 181 - Fixing Our bind_front with std::invoke", 983 | "Date": "2019-08-19" 984 | }, 985 | { 986 | "Video": "EqPlVZLEHlA", 987 | "Title": "C++ Weekly - Ep 182 - Overloading In C and C++", 988 | "Date": "2019-08-26" 989 | }, 990 | { 991 | "Video": "DiZ-az_nJMM", 992 | "Title": "C++ Weekly - Ep 183 - Start Using Raw String Literals", 993 | "Date": "2019-09-02" 994 | }, 995 | { 996 | "Video": "NoIJoL3cIJ4", 997 | "Title": "C++ Weekly - Ep 184 - What Are Higher Order Functions?", 998 | "Date": "2019-09-09" 999 | }, 1000 | { 1001 | "Video": "L06nbZXD2D0", 1002 | "Title": "C++ Weekly - Ep 185 - Stop Using reinterpret_cast!", 1003 | "Date": "2019-09-16" 1004 | }, 1005 | { 1006 | "Video": "lWzHLRN56zQ", 1007 | "Title": "C++ Weekly - Ep 186 - What Are Callables?", 1008 | "Date": "2019-09-23" 1009 | }, 1010 | { 1011 | "Video": "9YWzXSr2onY", 1012 | "Title": "C++ Weekly - Ep 187 - C++20's `constexpr` Algorithms", 1013 | "Date": "2019-09-30" 1014 | }, 1015 | { 1016 | "Video": "FRTmkDiW5MM", 1017 | "Title": "C++ Weekly - Ep 188 - C++20's `constexpr` `new` Support", 1018 | "Date": "2019-10-07" 1019 | }, 1020 | { 1021 | "Video": "EfYMKOMc738", 1022 | "Title": "C++ Weekly SE - clang-tidy Auto Fixes in Compiler Explorer - Tribute to Hubert Matthews", 1023 | "Date": "2019-10-12" 1024 | }, 1025 | { 1026 | "Video": "2kY-go52rNw", 1027 | "Title": "C++ Weekly - Ep 189 - C++14's Variable Templates", 1028 | "Date": "2019-10-14" 1029 | }, 1030 | { 1031 | "Video": "QpFjOlzg1r4", 1032 | "Title": "C++ Weekly - Ep 190 - The Important Parts of C++17 in 10 Minutes", 1033 | "Date": "2019-10-21" 1034 | }, 1035 | { 1036 | "Video": "nnfdvE2qNeo", 1037 | "Title": "C++ Weekly - Ep 191 - Cevelop IDE With CMake Based Projects", 1038 | "Date": "2019-10-28" 1039 | }, 1040 | { 1041 | "Video": "0vJXQ2VOzEs", 1042 | "Title": "C++ Weekly - Ep 192 - Stop Using Double Underscores", 1043 | "Date": "2019-11-04" 1044 | }, 1045 | { 1046 | "Video": "4yDRsQyWqqc", 1047 | "Title": "C++ Weekly - Ep 193 - C++20's `contains` Members", 1048 | "Date": "2019-11-11" 1049 | }, 1050 | { 1051 | "Video": "dR64GQb4AGo", 1052 | "Title": "C++ Weekly - Ep 194 - From SFINAE To Concepts With C++20", 1053 | "Date": "2019-11-18" 1054 | }, 1055 | { 1056 | "Video": "o0z3KT4gW7k", 1057 | "Title": "C++ Weekly - Ep 195 - C++20's `constinit`", 1058 | "Date": "2019-11-25" 1059 | }, 1060 | { 1061 | "Video": "tc0hVIOJk_U", 1062 | "Title": "C++ Weekly - Ep 196 - What is `requires requires`?", 1063 | "Date": "2019-12-02" 1064 | }, 1065 | { 1066 | "Video": "ayIJ4b6z-7g", 1067 | "Title": "C++ Weekly - Ep 197 - 25 Years of Best Practices", 1068 | "Date": "2019-12-09" 1069 | }, 1070 | { 1071 | "Video": "Q4SXFkTzD28", 1072 | "Title": "C++ Weekly - Ep - 198 - Surprise Uses For `explicit` Constructors", 1073 | "Date": "2019-12-16" 1074 | }, 1075 | { 1076 | "Video": "E_ROB_xUQQQ", 1077 | "Title": "C++ Weekly - Ep 199 - [[nodiscard]] Constructors And Their Uses", 1078 | "Date": "2019-12-23" 1079 | }, 1080 | { 1081 | "Video": "3hGSlUGEXtA", 1082 | "Title": "C++ Weekly - Ep 200 - Christmas Class 2019 - Chapter 1 of 5 - Understanding Lambdas", 1083 | "Date": "2019-12-30" 1084 | }, 1085 | { 1086 | "Video": "DolVujl_EUw", 1087 | "Title": "C++ Weekly - Ep 201 - Christmas Class 2019 - Chapter 2 of 5 - Building On Lambdas", 1088 | "Date": "2020-01-06" 1089 | }, 1090 | { 1091 | "Video": "VEqOOKU8RjQ", 1092 | "Title": "C++ Weekly - Ep 202 - Christmas Class 2019 - Chapter 3 of 5 - Utilizing Lambdas", 1093 | "Date": "2020-01-14" 1094 | }, 1095 | { 1096 | "Video": "tpGPVrTudLA", 1097 | "Title": "C++ Weekly - Ep 203 - Christmas Class 2019 - Chapter 4 of 5 - The Evolution of Lambdas", 1098 | "Date": "2020-01-20" 1099 | }, 1100 | { 1101 | "Video": "TKPDW--AzWo", 1102 | "Title": "C++ Weekly - Ep 204 - Christmas Class 2019 - Chapter 5 of 5 - Lambdas To The Limits", 1103 | "Date": "2020-01-27" 1104 | }, 1105 | { 1106 | "Video": "i2HyDHAVBsk", 1107 | "Title": "C++ Weekly - Ep 205 - Christmas Class 2019 - Chapter 5 of 5 Answers", 1108 | "Date": "2020-02-03" 1109 | }, 1110 | { 1111 | "Video": "IhjvznH9GvI", 1112 | "Title": "C++ Weekly - Ep 206 - Surprising Conversions with CTAD", 1113 | "Date": "2020-02-10" 1114 | }, 1115 | { 1116 | "Video": "-yaz4n5zWZs", 1117 | "Title": "C++ Weekly - Ep 207 - C++20's jthread and stop_token", 1118 | "Date": "2020-02-17" 1119 | }, 1120 | { 1121 | "Video": "YbgH7yat-Jo", 1122 | "Title": "C++ Weekly - Ep 208 - The Ultimate CMake / C++ Quick Start", 1123 | "Date": "2020-02-24" 1124 | }, 1125 | { 1126 | "Video": "kwFcRvxy0D0", 1127 | "Title": "C++ Weekly - Ep 209 - An RPG in C++20 - Part 0: The Plan", 1128 | "Date": "2020-03-02" 1129 | }, 1130 | { 1131 | "Video": "av0SYeUxVMU", 1132 | "Title": "C++ Weekly - Ep 210 - An RPG in C++20 - Part 1: Getting Started With SFML & Dear ImGui", 1133 | "Date": "2020-03-09" 1134 | }, 1135 | { 1136 | "Video": "8EyZ6mRDlx8", 1137 | "Title": "C++ Weekly - Ep 211 - C++20's Bit Manipulation Functions", 1138 | "Date": "2020-03-16" 1139 | }, 1140 | { 1141 | "Video": "rFnRzW3vvsQ", 1142 | "Title": "C++ Weekly - Live Stream 1 - Code Reviews", 1143 | "Date": "2020-03-20" 1144 | }, 1145 | { 1146 | "Video": "sZBVLDbJRwg", 1147 | "Title": "C++ Weekly - Ep 212 - An RPG In C++20 - Part 2: Finding Errors As Soon As Possible", 1148 | "Date": "2020-03-23" 1149 | }, 1150 | { 1151 | "Video": "qXhC3tEB4Fc", 1152 | "Title": "C++ Weekly - Live Stream 2 - Code Review", 1153 | "Date": "2020-03-27" 1154 | }, 1155 | { 1156 | "Video": "8aRfJp1oZGA", 1157 | "Title": "C++ Weekly - Ep 213 - CTRE: Compile Time Regular Expressions", 1158 | "Date": "2020-03-30" 1159 | }, 1160 | { 1161 | "Video": "d1BwjUlwYeg", 1162 | "Title": "C++ Weekly - Live Stream 3 - Porting Doom to C++", 1163 | "Date": "2020-04-04" 1164 | }, 1165 | { 1166 | "Video": "0dkzLdqH9V4", 1167 | "Title": "C++ Weekly - Ep 214 - Epic 10 Hour Port of Doom to C++", 1168 | "Date": "2020-04-07" 1169 | }, 1170 | { 1171 | "Video": "U_2WDRTdImk", 1172 | "Title": "C++ Weekly - Ep 215 - An RPG in C++20: Part 3 - Handling Command Line Parameters", 1173 | "Date": "2020-04-13" 1174 | }, 1175 | { 1176 | "Video": "gwHL4EOb-R8", 1177 | "Title": "C++ Weekly - Ep 216 - C++20's lerp, midpoint And Why They Are Necessary", 1178 | "Date": "2020-04-20" 1179 | }, 1180 | { 1181 | "Video": "1zIvfw-Zv4s", 1182 | "Title": "C++ Weekly - Live Stream 5 - Porting Doom to C++ - More constexpr!", 1183 | "Date": "2020-04-24" 1184 | }, 1185 | { 1186 | "Video": "Nand3PEV1p4", 1187 | "Title": "C++ Weekly - Ep 217 - Doom vs C++: Round 1: Initial Results", 1188 | "Date": "2020-04-27" 1189 | }, 1190 | { 1191 | "Video": "IcQl1Oh9AvQ", 1192 | "Title": "C++ Weekly - Ep 218 - C++20's std::to_array", 1193 | "Date": "2020-05-04" 1194 | }, 1195 | { 1196 | "Video": "DbSRetQP-Xg", 1197 | "Title": "Matt And Jason Discuss Cycle Perfect Emulation", 1198 | "Date": "2020-05-08" 1199 | }, 1200 | { 1201 | "Video": "jUh9q_qWhlM", 1202 | "Title": "C++ Weekly - Ep 219 - RPG In C++20 - Part 4: Reading SFML Joystick States", 1203 | "Date": "2020-05-11" 1204 | }, 1205 | { 1206 | "Video": "EzQ7YIIo1rY", 1207 | "Title": "Jonathan Teaches Jason Rust!", 1208 | "Date": "2020-05-15" 1209 | }, 1210 | { 1211 | "Video": "ew3wt0g99kg", 1212 | "Title": "C++ Weekly - Ep 220 - C++20's [[likely]] and [[unlikely]] With Practical use Case", 1213 | "Date": "2020-05-18" 1214 | }, 1215 | { 1216 | "Video": "FNLWtKxXQ0o", 1217 | "Title": "C++ Weekly - Ep 221 - Generating a .clang-format For C++ Doom", 1218 | "Date": "2020-05-25" 1219 | }, 1220 | { 1221 | "Video": "q6A7cKFXjY0", 1222 | "Title": "C++ Weekly - Ep 222 - 3.5x Faster Standard Containers With PMR!", 1223 | "Date": "2020-06-01" 1224 | }, 1225 | { 1226 | "Video": "Y5-ZgxfQvpc", 1227 | "Title": "Jonathan Teaches Jason Rust! - Part 2", 1228 | "Date": "2020-06-05" 1229 | }, 1230 | { 1231 | "Video": "-F0j2VN4xEU", 1232 | "Title": "C++ Weekly - Ep 223 - Know Your Standard Library: std::nextafter", 1233 | "Date": "2020-06-08" 1234 | }, 1235 | { 1236 | "Video": "EF-lO3daS7I", 1237 | "Title": "C++ Weekly - Ep 224 - RPG In C++20 - Part 5: Dealing With Game Input Events", 1238 | "Date": "2020-06-15" 1239 | }, 1240 | { 1241 | "Video": "Oee7gje-XRc", 1242 | "Title": "Reviewing The Command & Conquer Source!", 1243 | "Date": "2020-06-19" 1244 | }, 1245 | { 1246 | "Video": "gjFrjNK3Dq4", 1247 | "Title": "C++ Weekly - Ep 225 - Understanding Operator Overloading", 1248 | "Date": "2020-06-22" 1249 | }, 1250 | { 1251 | "Video": "JAr0c6le_F8", 1252 | "Title": "Moving From Intel to ARM - Apple's Big Performance Mistake?", 1253 | "Date": "2020-06-24" 1254 | }, 1255 | { 1256 | "Video": "mAHHKDyLmCI", 1257 | "Title": "C++ Weekly - Ep 226 - The Arrow Operator Is Magic", 1258 | "Date": "2020-06-29" 1259 | }, 1260 | { 1261 | "Video": "wRTWnGse3vo", 1262 | "Title": "C++ Weekly - Ep 227 - RPG In C++20 - Part 6: Dealing With Game Events - 2", 1263 | "Date": "2020-07-06" 1264 | }, 1265 | { 1266 | "Video": "VPC17U-twrY", 1267 | "Title": "C++ Weekly - Ep 228 - C++20's (High Precision) Mathematical Constants", 1268 | "Date": "2020-07-13" 1269 | }, 1270 | { 1271 | "Video": "qD1aKLux5Fw", 1272 | "Title": "C++ Weekly - Ep 229 - C++20: Why Deprecate The Comma Operator?", 1273 | "Date": "2020-07-20" 1274 | } 1275 | ] 1276 | --------------------------------------------------------------------------------