staticvec
C++ Format
Our great sponsors
staticvec | C++ Format | |
---|---|---|
10 | 161 | |
267 | 19,307 | |
- | 1.6% | |
4.9 | 9.8 | |
11 months ago | 7 days ago | |
Rust | C++ | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
staticvec
-
Posting asking if the Rust Reddit community is overly regulated gets regulated.
This crate of mine for example is currently literally unusable until the deeply fundamental features that John Random kinda-sorta removed in this pull request, ostensibly in preparation for whatever shittily stated syntax is ultimately establihed by whatever the hell "keyword generics" actually is (I really don't know, like this isn't a joke, I fundamentally do not understand what the fuck they're proposing at all in any way or how it's meaningfully and usefullly different from the previous syntax).
-
Alternative for Vec for variable size arrays in no_std environment?
If you're on nightly, I have a crate that I'd say would seem to be exactly what you're looking for.
-
Why do Rust crates rarely have good documentation?
I'd say the module system can sometimes get in the way of even the most technically well-documented crate out there. It's why for example I carefully rexport the various types implemented by my crate StaticVec from lib.rs such that the main docs page looks like this, even though "under the hood" everything is actually about as modular as you might expect it to be.
-
There's always something new and interesting to see on your Rust crate's Github Traffic page
Here.
- StaticVec 0.11.0 - fully fixed for current nightly Rust and updated to the 2021 edition
-
Zig programming language 0.9.0 released
Your link there is rather outdated. mem::unitialized() is deprecated and not recommended for use. MaybeUninit works more than fine in my experience, anyways.
-
What can C++ do that Rust can’t? (2021 edition)
The lack of decltype-esque functionality has consequences that are far-reaching enough to be worthy of more than a throwaway mention, IMO. See this ongoing issue for a crate of mine, for example.
-
How do I implement a StackVec in no_std that allows me to store arbitrary &str's?
If you're on nightly, my crate StaticVec definitely has your use case covered and then some.
-
StaticVec 0.10.6 - const `push`, const `pop, const `insert, the return of `intersperse` also as a `const fn`, and more!
Looks like this crate uses the full const_generics instead of min_const_generics (see here), along with a couple dozen other unstable features. I'm not sure how much of that could easily be removed, since it is often the tendency to enable tons of unstable features when you are already on nightly because of something like const generics.
- StaticVec 0.10.6: const `push`, const `pop`, const `insert`, the return of `intersperse` now also as a `const fn`, and more!
C++ Format
-
C++ left arrow operator (2016)
Continuation passing monads form the basis of a perfectly valid and usable software architecture and programming pattern.
In the case of ostream and operator<<, this pattern reduces the number of intermediate objects that would otherwise be constructed.
If you object to iostream on religious or stylistic grounds, there's always fmt which is more like Go or Python string interpolation.[0]
0. https://fmt.dev
-
C++ Game Utility Libraries: for Game Dev Rustaceans
GitHub repo: fmtlib/fmt
-
Creating k-NN with C++ (from Scratch)
cmake_minimum_required(VERSION 3.5) project(knn_cpp CXX) # Set up C++ version and properties include(CheckIncludeFileCXX) check_include_file_cxx(any HAS_ANY) check_include_file_cxx(string_view HAS_STRING_VIEW) check_include_file_cxx(coroutine HAS_COROUTINE) set(CMAKE_CXX_STANDARD 20) set(CMAKE_BUILD_TYPE Debug) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # Copy data file to build directory file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/iris.data DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) # Download library usinng FetchContent include(FetchContent) FetchContent_Declare(matplotplusplus GIT_REPOSITORY https://github.com/alandefreitas/matplotplusplus GIT_TAG origin/master) FetchContent_GetProperties(matplotplusplus) if(NOT matplotplusplus_POPULATED) FetchContent_Populate(matplotplusplus) add_subdirectory(${matplotplusplus_SOURCE_DIR} ${matplotplusplus_BINARY_DIR} EXCLUDE_FROM_ALL) endif() FetchContent_Declare( fmt GIT_REPOSITORY https://github.com/fmtlib/fmt.git GIT_TAG 7.1.3 # Adjust the version as needed ) FetchContent_MakeAvailable(fmt) # Add executable and link project libraries and folders add_executable(${PROJECT_NAME} main.cc) target_link_libraries(${PROJECT_NAME} PUBLIC matplot fmt::fmt) aux_source_directory(lib LIB_SRC) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_sources(${PROJECT_NAME} PRIVATE ${LIB_SRC}) add_subdirectory(tests)
-
Optimizing the unoptimizable: a journey to faster C++ compile times
Good catch, thanks! Fixed now. This explains why the difference was kinda low compared to another benchmark: https://github.com/fmtlib/fmt?tab=readme-ov-file#compile-tim....
-
Learn Modern C++
> This is from C++23, right?
std::println is, yes.
> I wonder how available this is within compilers
https://en.cppreference.com/w/cpp/compiler_support says clang, gcc, and msvc all support it, though I don't know how recent those versions are off the top of my head.
In my understanding, with this specific feature, if you want a polyfill for older compilers, or to use some more cutting-edge features that haven't been standardized yet, https://github.com/fmtlib/fmt is available to you.
- The C++20 Naughty and Nice List for Game Devs
-
For processing strings, streams in C++ can be slow
{fmt} has internal buffering but it's not yet exposed to users. There is a feature request for it: https://github.com/fmtlib/fmt/issues/2354. FILE buffering is not too bad but it can be easily optimized: https://www.zverovich.net/2020/08/04/optimal-file-buffer-siz....
-
adoption of fmt based logging
Automatic use of operator<< when that exists was present in fmt until version 9.0.0. In version 9 you could use FMT_DEPRECATED_OSTREAM to opt in the old behaviour, but this too was removed in version 10.0.0. Now there is no way to automatically use operator<<.
-
What's your favorite c++20 feature that should've been there 10 years ago?
You can install it https://github.com/fmtlib/fmt
-
Codebases to read
Additionally, if you like low level stuff, check out libfmt (https://github.com/fmtlib/fmt) - not a big project, not difficult to understand. Or something like simdjson (https://github.com/simdjson/simdjson).
What are some alternatives?
staticstep - Provides truly zero-cost alternatives to Iterator::step_by for both incrementing and decrementing any type that satisfies RangeBounds<T: Copy + Default + Step>.
spdlog - Fast C++ logging library.
hypergraph - Hypergraph is data structure library to create a directed hypergraph in which a hyperedge can join any number of vertices.
Better Enums - C++ compile-time enum to string, iteration, in a single header file
compile-time-regular-expressions - Compile Time Regular Expression in C++
ZXing - ZXing ("Zebra Crossing") barcode scanning library for Java, Android
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266
FastFormat - The fastest, most robust C++ formatting library
zigmod - 📦 A package manager for the Zig programming language.
ZBar - Clone of the mercurial repository http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar
containers - Containers backed by std.experimental.allocator
Scintilla