-
Notifications
You must be signed in to change notification settings - Fork 82
General Design Changes
The design goals are the same as for SeqAn 1 and 2. We want a generic library with generic data structures and generic algorithms, while avoiding overhead due to runtime polymorphism. However with C++17 at the horizon we can achieve this with different technologies, which we hadn't at hand for previous SeqAn versions.
While we still will offer free-functions, which implement algorithms over containers and data-structures we will not use something we called global member functions, whose defined the public interface of a data structure anymore. Instead the public interface of a data structure is defined by a concept. Since concept checking allows us to write generic algorithms it is also possible to now use real member functions instead.
Here is a small example of how this could look like.
template <typename host_type, typename gaps_storage = default_gaps_storage<host_type>>
class gaps
{
...
protected:
gaps_storage _storage;
}