Comments (2)
You can, yes. There is no need for any flag, you can just select manually if you want. See this example:
#include "simdutf.h"
#include <cstdlib>
#include <iostream>
#include <string>
int main() {
// This is just a demonstration.
std::string source = "La vie est belle.";
std::string chosen_implementation;
for (auto &implementation : simdutf::get_available_implementations()) {
if (!implementation->supported_by_runtime_system()) {
continue;
}
bool validutf8 = implementation->validate_utf8(source.c_str(), source.size());
if (!validutf8) {
return EXIT_FAILURE;
}
std::cout << implementation->name() << ": " << implementation->description()
<< std::endl;
chosen_implementation = implementation->name();
}
auto my_implementation =
simdutf::get_available_implementations()[chosen_implementation];
if (!my_implementation) {
return EXIT_FAILURE;
}
if (!my_implementation->supported_by_runtime_system()) {
return EXIT_FAILURE;
}
simdutf::get_active_implementation() = my_implementation;
bool validutf8 = simdutf::validate_utf8(source.c_str(), source.size());
if (!validutf8) {
return EXIT_FAILURE;
}
if (simdutf::get_active_implementation()->name() != chosen_implementation) {
return EXIT_FAILURE;
}
std::cout << "I have manually selected: " << simdutf::get_active_implementation()->name() << std::endl;
return EXIT_SUCCESS;
}
We design the library so that you should never need to do this, but it is supported.
I am going to close this issue and add some documentation.
from simdutf.
See #227
from simdutf.
Related Issues (20)
- utf8 validator improvements HOT 1
- Confusion in UTF-8 Detection and BOM Check HOT 4
- Package for Debian/Ubuntu? HOT 5
- Use fmtlib where appropriate
- create higher level base64 functions HOT 4
- Incorrect processor detection when cross compiling HOT 2
- RVV port for Base64 procedures HOT 4
- RISC-V RVV CI tests broken
- Base64 decoder is currently too lenient with padding characters
- `simdutf::result` constructor is not implemented HOT 4
- SIMDUTF_CAN_ALWAYS_RUN_* macros broken HOT 2
- Crosscompilation for RVV failed HOT 3
- CI: run tests in parallel for all targets HOT 2
- Compiler failure on ARM64 Windows HOT 7
- Possible Issue With .pc.in? HOT 7
- Crash on Windows when main thread exits while a different thread is using simdutf HOT 1
- tests/reference /validate_latin1 implemented incorrectly HOT 13
- UTF-32 endian support HOT 2
- #include inside namespace breaks symbols for regular use on riscv64 HOT 2
- Build failures due to forcing AVX512 types on an AVX2 system HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from simdutf.