Skip to content

Conversation

@blinard-BIOINFO
Copy link
Member

@blinard-BIOINFO blinard-BIOINFO commented Aug 4, 2022

_phylo_kmer_db object do not allow operator '=' (delete), but allows move assignment.

However, its current definition contains the noexcept qualifier which raise an error at compilation time:

xpas/include/xpas/phylo_kmer_db.h:46:25: note: ‘xpas::_phylo_kmer_db<PhyloKmer>& xpas::_phylo_kmer_db<PhyloKmer>::operator=(xpas::_phylo_kmer_db<PhyloKmer>&&) noexcept [with PhyloKmer = xpas::positioned_phylo_kmer]’ 
is implicitly deleted because its exception-specification does not match the implicit exception-specification ‘’
   46 |         _phylo_kmer_db& operator=(_phylo_kmer_db&&) noexcept = default;
      |                         ^~~~~~~~

I removed the noexcept qualifier which solves the issue until you deal with implicit exception-specification.

@blinard-BIOINFO blinard-BIOINFO changed the title - removed noexcept in move assignment operator - removed noexcept in move assignment operator of class phylo_kmer_db Aug 4, 2022
@blinard-BIOINFO
Copy link
Member Author

After more investigation, this is due to C11 vs C17.

@blinard-BIOINFO
Copy link
Member Author

@nromashchenko Any chance you accept this ? Any chance you accept this ? This PR is more than 6 month old. Currently I just cannot clone clappas and use IPK as a submodule without forcing IPK to branch clapas_compatibility

@nromashchenko
Copy link
Member

Yes, sorry, swamped with other things right now.

The problem with CLAPPAS is that it depends on a very old version where IPK and I2L were the same thing. That is, you have all code for building databases in your project, while you actually only need a few important headers + serialization.

In the future, we should update CLAPPAS (and SHERPAS) so that it depends only on this repository: https://github.com/phylo42/I2L

Then, this request belongs to another repo. These files don't exist here anymore. However, changing switching to I2L is not just a drop-in update: I did not release XPAS versions for a long time, and the update contains quite a few changes including renaming the namespace where all classes live.

What I suggest you to do right now is to stick with the compatibility branch, and when you have a "bug cleaning day" at work, update to I2L and test the current version of I2L. I will accept the request with no problem then.

I can help with figuring out the update process if needed.

@blinard-BIOINFO
Copy link
Member Author

Ok, btu the time being I force clappas to use this branch and when as a second step I will move to I2L.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants