mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-10-22 07:21:21 +00:00
39529c226b
The prior method was to generate one line of `g_container.emplace_back(…)` per entry in the list & letting the compiler chew on that. Each string argument in that call was done was `u8"Some Name"s`, meaning as a std::string instance. Drawbacks: • takes the compiler ages to compile, even forcing me to drop all optimizations for the ISO-639 language list file • even smaller files such as the IANA language subtag registry lists take more than 30s to compile • due to no optimizations initialization is actually not as fast as could be The new method uses a plain C-style array of structs with `char const *` entries for the initial list. The initialization method then copies the entries from that list to the actual container, again using `std::emplace_back(…)`. This yields sub-1s compilation times even with the longest file, the ISO-639 language list, and the runtime initialization is actually faster. |
||
---|---|---|
.. | ||
vendor | ||
application.rb | ||
compilation_database.rb | ||
config.rb | ||
digest.rb | ||
extensions.rb | ||
format_string_verifier.rb | ||
gtest.rb | ||
helpers.rb | ||
iana_language_subtag_registry.rb | ||
installer.rb | ||
iso639.rb | ||
iso3166.rb | ||
iso15924.rb | ||
library.rb | ||
online_file.rb | ||
pch.rb | ||
po.rb | ||
requirements.rb | ||
source_tests.rb | ||
tarball.rb | ||
target.rb |