Conversation
Hotfix v1.1.3
macos-latest (for R release versions).
|
The solution to this is to fix it in Boost. Half measures to work around problems in libraries add unnecessary work. I doubt we want to fix it, so we can report it to them if they haven't seen the problem already. |
This seemed to me a whole lot less work than our editing the Boost files, which is what we have been doing up to now when we have run into this sort of problem. And it seemed like a good, simple, short-term measure to circumvent package-check warnings while we wait who knows how long for Boost to remove C++17-deprecated features from their code. Somewhat related to this, I happened upon the following in Section 1.6.4.2 ("C++17 Problems") of the Writing R Extensions guide:
I was sort of hoping this would also fix the deprecated declaration issue, but it doesn't, though maybe there is similar, narrowly-targeted flag that would. (Using |
|
I don't think we should edit our Boost files. I think we should keep the C++11 requirement and wait for Boost to change their files. There is nothing wrong with our program (or with Boost for that matter), and we are making changes based an assumption that CRAN will reject this. There is nothing wrong with specifying a standard, and I would say that it is in fact good practice, in part because of things like this. These changes to not add features, improve performance or fix bugs. Since nothing is gained by changing the standard, we can wait until we want a change in one of those three categories that requires a new standard. If there were some conflict where we wanted a feature in C++17 then this would be a good way to update the standard and address the Boost warnings, but for now, what we have is exactly as good as what we'd be updating to. |
You're only bringing this up now? We've been doing this for a while. But I think I basically agree with you until I hear a compelling reason not to. In any case, I'll take this PR off the table for now and will convert this (and biocro/biocro#86, which uses it) to a draft until and unless we need to do something further with this issue. |
This PR adds pragmas to two C++ source code files to suppress warnings about deprecated declarations in the Boost library code when C++17 is used for compilation. This will allow use to remove the C++11 SystemRequirement in client R packages.