Hi @Martinsos
a small PR to add some useful const qualifers. Without these const qualifiers, the following pattern isn't possible:
// we want to use edlib in case-insensitive mode
constexpr std::array<EdlibEqualityPair, 5> EdlibCaseInsensitiveArray{{
{'A', 'a'}, {'C', 'c'}, {'G', 'g'}, {'T', 't'}, {'N', 'n'},
}};
const EdlibAlignConfig edlibConfig{
-1,
EDLIB_MODE_NW,
EDLIB_TASK_PATH,
EdlibCaseInsensitiveArray.data(),
EdlibCaseInsensitiveArray.size(),
};
void foo() {
[...]
const auto alnResult =
edlibAlign(query.c_str(), query.size(), target.c_str(), target.size(), edlibConfig);
[...]
}
because the std::array would return a const-qualified EdlibEqualityPair*. With this pattern, all parameters get burned into read-only memory on compilation, which improves cache lookup and makes code safer.
Hi @Martinsos a small PR to add some useful
const
qualifers. Without theseconst
qualifiers, the following pattern isn't possible:because the
std::array
would return aconst
-qualifiedEdlibEqualityPair*
. With this pattern, all parameters get burned into read-only memory on compilation, which improves cache lookup and makes code safer.