41554 blogs · [ { "id": "01a0b5c3-ca1d-7238-8d82-e3e6347b78a3", "title": "Performance Tip of the Week #97: Virtuous ecosystem cycles", "url": "https://abseil.io/fast/97", "published_at": "2025-11-27T05:00:00+00:00" }, { "id": "01a0b5c3-ca1d-7238-8d82-e3e63529fdf1", "title": "Performance Tip of the Week #99: Illuminating the processor core with llvm-mca", "url": "https://abseil.io/fast/99", "published_at": "2025-10-07T04:00:00+00:00" }, { "id": "01a0b5c3-ca1d-7238-8d82-e3e63591baad", "title": "Performance Tip of the Week #98: Measurement has an ROI", "url": "https://abseil.io/fast/98", "published_at": "2025-10-03T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a47934e6c", "title": "Performance Tip of the Week #26: Fixing things with hashtable profiling", "url": "https://abseil.io/fast/26", "published_at": "2025-07-16T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a48879c31", "title": "Performance Tip of the Week #95: Spooky action at a distance", "url": "https://abseil.io/fast/95", "published_at": "2025-07-14T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a48ca4621", "title": "Performance Tip of the Week #94: Decision making in a data-imperfect world", "url": "https://abseil.io/fast/94", "published_at": "2025-06-27T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a495ca91c", "title": "Performance Tip of the Week #93: Robots never sleep", "url": "https://abseil.io/fast/93", "published_at": "2025-06-03T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a49c62c3a", "title": "Performance Tip of the Week #90: How to estimate", "url": "https://abseil.io/fast/90", "published_at": "2025-02-06T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4a35739c", "title": "Performance Tip of the Week #88: Measurement methodology: Avoid the jelly beans trap", "url": "https://abseil.io/fast/88", "published_at": "2024-11-18T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4a96663f", "title": "Performance Tip of the Week #87: Two-way doors", "url": "https://abseil.io/fast/87", "published_at": "2024-11-08T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4b2a8f3c", "title": "Tip of the Week #234: Pass by Value, by Pointer, or by Reference?", "url": "https://abseil.io/tips/234", "published_at": "2024-09-30T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4b7b3c9f", "title": "Tip of the Week #232: When to Use auto for Variable Declarations", "url": "https://abseil.io/tips/232", "published_at": "2024-09-30T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4c24d276", "title": "Tip of the Week #231: Between Here and There: Some Minor Overlooked Algorithms", "url": "https://abseil.io/tips/231", "published_at": "2024-09-30T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4d0981f3", "title": "Performance Tip of the Week #83: Reducing memory indirections", "url": "https://abseil.io/fast/83", "published_at": "2024-09-04T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4d88a22f", "title": "Performance Tip of the Week #79: Make at most one tradeoff at a time", "url": "https://abseil.io/fast/79", "published_at": "2024-09-04T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4e07896b", "title": "Performance Tip of the Week #72: Optimizing optimization", "url": "https://abseil.io/fast/72", "published_at": "2024-09-04T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4e851bba", "title": "Performance Tip of the Week #62: Identifying and reducing memory bandwidth needs", "url": "https://abseil.io/fast/62", "published_at": "2024-09-04T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4f611be6", "title": "Tip of the Week #197: Reader Locks Should Be Rare", "url": "https://abseil.io/tips/197", "published_at": "2024-06-25T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a4fc2f0f0", "title": "Tip of the Week #229: Ranked Overloads for Template Metaprogramming", "url": "https://abseil.io/tips/229", "published_at": "2024-03-21T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5083de53", "title": "Tip of the Week #227: Be Careful with Empty Containers and Unsigned Arithmetic", "url": "https://abseil.io/tips/227", "published_at": "2024-03-21T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5100b6d7", "title": "Tip of the Week #224: Avoid vector.at()", "url": "https://abseil.io/tips/224", "published_at": "2024-03-21T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a51f4c239", "title": "Performance Tip of the Week #75: How to microbenchmark", "url": "https://abseil.io/fast/75", "published_at": "2023-11-10T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a528cc423", "title": "Performance Tip of the Week #74: Avoid sweeping street lights under rugs", "url": "https://abseil.io/fast/74", "published_at": "2023-11-10T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a53674e47", "title": "Performance Tip of the Week #70: Defining and measuring optimization success", "url": "https://abseil.io/fast/70", "published_at": "2023-10-20T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a53ef2838", "title": "Performance Tip of the Week #60: In-process profiling: lessons learned", "url": "https://abseil.io/fast/60", "published_at": "2023-10-15T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5401c463", "title": "Performance Tip of the Week #64: More Moore with better API design", "url": "https://abseil.io/fast/64", "published_at": "2023-10-10T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a543a94ed", "title": "Performance Tip of the Week #52: Configuration knobs considered harmful", "url": "https://abseil.io/fast/52", "published_at": "2023-09-30T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a550b29bd", "title": "Performance Tip of the Week #7: Optimizing for application productivity", "url": "https://abseil.io/fast/7", "published_at": "2023-09-14T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a556656e3", "title": "Abseil Breaking Change Policy Update", "url": "https://abseil.io/blog/20230828-breaking-change-policy", "published_at": "2023-08-28T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a55841826", "title": "Perf Tips", "url": "https://abseil.io/blog/03022023-perf-tips", "published_at": "2023-03-02T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5590cb19", "title": "Performance Tip of the Week #9: Optimizations past their prime", "url": "https://abseil.io/fast/9", "published_at": "2023-03-02T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a55fd5f0d", "title": "Performance Tip of the Week #53: Precise C++ benchmark measurements with Hardware Performance Counters", "url": "https://abseil.io/fast/53", "published_at": "2023-03-02T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a56544857", "title": "Performance Tip of the Week #39: Beware microbenchmarks bearing gifts", "url": "https://abseil.io/fast/39", "published_at": "2023-03-02T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a56dcdecb", "title": "Performance Tip of the Week #21: Improving the efficiency of your regular expressions", "url": "https://abseil.io/fast/21", "published_at": "2023-03-02T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5703106a", "title": "Tip of the Week #198: Tag Types", "url": "https://abseil.io/tips/198", "published_at": "2023-02-15T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a57f2daf1", "title": "Tip of the Week #218: Designing Extension Points With FTADLE", "url": "https://abseil.io/tips/218", "published_at": "2023-01-19T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5808899b", "title": "Tip of the Week #3: String Concatenation and operator+ vs. StrCat()", "url": "https://abseil.io/tips/3", "published_at": "2022-11-16T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a585b978f", "title": "Tip of the Week #215: Stringifying Custom Types with AbslStringify()", "url": "https://abseil.io/tips/215", "published_at": "2022-11-16T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5921805a", "title": "Tip of the Week #18: String Formatting with Substitute", "url": "https://abseil.io/tips/18", "published_at": "2022-11-16T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a59a288cf", "title": "Tip of the Week #124: absl::StrFormat()", "url": "https://abseil.io/tips/124", "published_at": "2022-11-16T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5a77007b", "title": "Abseil Stringify", "url": "https://abseil.io/blog/11152022-stringify", "published_at": "2022-11-15T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5b6eb344", "title": "Abseil Logging", "url": "https://abseil.io/blog/09082022-logging", "published_at": "2022-09-08T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5b7ff09f", "title": "The Danger of Atomic Operations", "url": "https://abseil.io/blog/01222022-atomic-operations", "published_at": "2022-01-18T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5c650b35", "title": "SWE Book Freely Available", "url": "https://abseil.io/blog/04222021-swe-book", "published_at": "2021-04-22T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5c691b98", "title": "Tip of the Week #188: Be Careful With Smart-Pointer Function Parameters", "url": "https://abseil.io/tips/188", "published_at": "2020-12-10T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5cb12fe0", "title": "Tip of the Week #187: std::unique_ptr Must Be Moved", "url": "https://abseil.io/tips/187", "published_at": "2020-11-11T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5ce84549", "title": "Tip of the Week #186: Prefer to Put Functions in the Unnamed Namespace", "url": "https://abseil.io/tips/186", "published_at": "2020-11-11T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5cfeb032", "title": "Abseil Platform Support Update", "url": "https://abseil.io/blog/20201001-platforms", "published_at": "2020-10-01T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5d13ab74", "title": "Tip of the Week #76: Use absl::Status", "url": "https://abseil.io/tips/76", "published_at": "2020-09-11T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5d5116c7", "title": "Tip of the Week #5: Disappearing Act", "url": "https://abseil.io/tips/5", "published_at": "2020-09-11T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5d996fb3", "title": "Tip of the Week #181: Accessing the value of a StatusOr<T>", "url": "https://abseil.io/tips/181", "published_at": "2020-09-11T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5de5f3cb", "title": "Tip of the Week #165: if and switch statements with initializers", "url": "https://abseil.io/tips/165", "published_at": "2020-09-11T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5de9dd9d", "title": "Tip of the Week #116: Keeping References on Arguments", "url": "https://abseil.io/tips/116", "published_at": "2020-09-11T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5eab3bc1", "title": "Abseil Status", "url": "https://abseil.io/blog/2020-091021-status", "published_at": "2020-09-10T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5eb0f91f", "title": "Tip of the Week #140: Constants: Safe Idioms", "url": "https://abseil.io/tips/140", "published_at": "2020-09-01T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5f1cf6bd", "title": "Tip of the Week #177: Assignability vs. Data Member Types", "url": "https://abseil.io/tips/177", "published_at": "2020-04-06T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a5ffaa001", "title": "Tip of the Week #176: Prefer Return Values to Output Parameters", "url": "https://abseil.io/tips/176", "published_at": "2020-04-06T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a60edc732", "title": "Tip of the Week #175: Changes to Literal Constants in C++14 and C++17.", "url": "https://abseil.io/tips/175", "published_at": "2020-04-06T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a617aa5c5", "title": "Tip of the Week #173: Wrapping Arguments in Option Structs", "url": "https://abseil.io/tips/173", "published_at": "2020-04-06T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a61f06457", "title": "Tip of the Week #172: Designated Initializers", "url": "https://abseil.io/tips/172", "published_at": "2020-04-06T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6260730c", "title": "Tip of the Week #171: Avoid Sentinel Values", "url": "https://abseil.io/tips/171", "published_at": "2020-04-06T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a62c5d4db", "title": "Tip of the Week #163: Passing std::optional parameters", "url": "https://abseil.io/tips/163", "published_at": "2020-04-06T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a63a748fc", "title": "Announcing TCMalloc", "url": "https://abseil.io/blog/20200212-tcmalloc", "published_at": "2020-02-12T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a649c576a", "title": "Tip of the Week #108: Avoid std::bind", "url": "https://abseil.io/tips/108", "published_at": "2019-12-19T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6527f43b", "title": "Tip of the Week #166: When a Copy is not a Copy", "url": "https://abseil.io/tips/166", "published_at": "2019-12-12T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6542fd43", "title": "Tip of the Week #146: Default vs Value Initialization", "url": "https://abseil.io/tips/146", "published_at": "2019-12-12T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a655ae50f", "title": "Tip of the Week #168: inline Variables", "url": "https://abseil.io/tips/168", "published_at": "2019-11-25T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a655e44a3", "title": "Tip of the Week #161: Good Locals and Bad Locals", "url": "https://abseil.io/tips/161", "published_at": "2019-11-25T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6633d4ed", "title": "Abseil Random", "url": "https://abseil.io/blog/20191121-random", "published_at": "2019-11-21T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a66633da9", "title": "Introducing Abseil Options", "url": "https://abseil.io/blog/201901115-options", "published_at": "2019-11-15T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a66665976", "title": "Tip of the Week #182: Initialize Your Ints!", "url": "https://abseil.io/tips/182", "published_at": "2019-10-01T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a66e0e80c", "title": "Tip of the Week #180: Avoiding Dangling References", "url": "https://abseil.io/tips/180", "published_at": "2019-10-01T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a66eb896d", "title": "Tip of the Week #158: Abseil Associative containers and contains()", "url": "https://abseil.io/tips/158", "published_at": "2019-10-01T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a67535dcf", "title": "Tip of the Week #147: Use Exhaustive switch Statements Responsibly", "url": "https://abseil.io/tips/147", "published_at": "2019-09-09T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a67a4dcb3", "title": "B-tree Ordered Containers", "url": "https://abseil.io/blog/20190812-btree", "published_at": "2019-08-12T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a689b6e78", "title": "Tip of the Week #90: Retired Flags", "url": "https://abseil.io/tips/90", "published_at": "2019-05-10T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a697cf9b5", "title": "Tip of the Week #45: Avoid Flags, Especially in Library Code", "url": "https://abseil.io/tips/45", "published_at": "2019-05-10T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6a305ea6", "title": "Tip of the Week #103: Flags Are Globals", "url": "https://abseil.io/tips/103", "published_at": "2019-05-10T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6a8871e3", "title": "Abseil Flags", "url": "https://abseil.io/blog/20190509-flags", "published_at": "2019-05-09T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6ac17cf3", "title": "Abseil Support for CMake", "url": "https://abseil.io/blog/20190402-cmake-support", "published_at": "2019-04-02T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6ba19e19", "title": "Automated Upgrade Tooling for Abseil", "url": "https://abseil.io/blog/20181221-upgrade-tooling", "published_at": "2018-12-20T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6c490805", "title": "CppCon 2018: Modern C++ Design", "url": "https://abseil.io/blog/20181129-moderncpp", "published_at": "2018-11-29T05:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6d45b75c", "title": "Civil Time in Abseil", "url": "https://abseil.io/blog/20181010-civil-time", "published_at": "2018-10-10T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6e2e5981", "title": "Tip of the Week #153: Don't Use using-directives", "url": "https://abseil.io/tips/153", "published_at": "2018-09-30T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6ecc89d6", "title": "Tip of the Week #152: AbslHashValue and You", "url": "https://abseil.io/tips/152", "published_at": "2018-09-28T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6f29ac30", "title": "Tip of the Week #144: Heterogeneous Lookup in Associative Containers", "url": "https://abseil.io/tips/144", "published_at": "2018-09-28T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a6f7a9182", "title": "Tip of the Week #136: Unordered Containers", "url": "https://abseil.io/tips/136", "published_at": "2018-09-28T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a70555e2c", "title": "Swiss Tables and absl::Hash", "url": "https://abseil.io/blog/20180927-swisstables", "published_at": "2018-09-27T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a7129b642", "title": "Abseil Python Docs are Here!", "url": "https://abseil.io/blog/20180831-python-docs", "published_at": "2018-08-31T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a71b25ca3", "title": "Clang-Tidy Checks for Abseil", "url": "https://abseil.io/blog/20180830-clang-tidy", "published_at": "2018-08-30T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a71be02e4", "title": "Coroutine Types", "url": "https://abseil.io/blog/20180713-coroutine-types", "published_at": "2018-07-13T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a724ad69f", "title": "The Abseil str_format Library", "url": "https://abseil.io/blog/20180622-format", "published_at": "2018-06-22T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a7301b0c7", "title": "Long-Term Support (LTS) Branches", "url": "https://abseil.io/blog/20180618-lts-branches", "published_at": "2018-06-18T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a734e4bd0", "title": "Revisiting Regular Types", "url": "https://abseil.io/blog/20180531-regular-types", "published_at": "2018-05-31T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a73f4f44c", "title": "Abseil No Longer Depends on CCTZ", "url": "https://abseil.io/blog/20180511-cctz-removal", "published_at": "2018-05-11T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a74d63311", "title": "Tip of the Week #149: Object Lifetimes vs. = delete", "url": "https://abseil.io/tips/149", "published_at": "2018-05-03T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a74decca6", "title": "Tip of the Week #148: Overload Sets", "url": "https://abseil.io/tips/148", "published_at": "2018-05-03T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a751d8087", "title": "Tip of the Week #117: Copy Elision and Pass-by-value", "url": "https://abseil.io/tips/117", "published_at": "2018-05-03T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a75fc8092", "title": "Tip of the Week #24: Copies, Abbrv.", "url": "https://abseil.io/tips/24", "published_at": "2018-04-20T04:00:00+00:00" }, { "id": "01a0b5c3-ca1e-7180-8d84-8f8a76eb98b9", "title": "Tip of the Week #120: Return Values are Untouchable", "url": "https://abseil.io/tips/120", "published_at": "2018-04-20T04:00:00+00:00" } ] posts Claim your blog
Back to abseil.io
Blog · corpus.blog/blogs/abseil.io/posts

abseil.io

abseil.io

2025

2024

2023

2022

2021

2020

2019

2018