Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor codebase to use std::optional instead of boost::optional #6551

Closed
SiarheiFedartsou opened this issue Feb 23, 2023 · 11 comments
Closed

Comments

@SiarheiFedartsou
Copy link
Member

Description

We migrated to C++17 and can start using std::optional from standard library instead of boost::optional.

The main problem here is Boost.Spirit library which doesn’t support std::optional(see #6429 (comment)).

@Kaushik-Iyer
Copy link

Can I try to work on this? Which part of the codebase should I be looking at?

@nilsnolde
Copy link
Contributor

GSoC has an application process, which we will follow. We’ll make an announcement as soon as that starts.

@code-sparsh
Copy link

I might be able to work on this. Is it available?

@nilsnolde
Copy link
Contributor

It is. Do you want to be assigned?

@97littleleaf11
Copy link
Contributor

oops, I already have some progress on this issue

@97littleleaf11
Copy link
Contributor

@nilsnolde sorry for my previous misguiding comment. @code-sparsh It's fine that you take this issue! I will find another issue to work on later. Actually I haven't dig into the Boost.Spirit yet.

@code-sparsh
Copy link

@97littleleaf11 Oh okay. If you already have some progress, it's fair that you take the issue because I haven't started yet.

Regarding the Boost.Spirit, I did some research on it. I think it would require some extra workarounds to be able to support std::optional. That might add some extra boilerplate to the code. I don't know if that's feasible or not, because I am just a beginner in this.

@97littleleaf11
Copy link
Contributor

97littleleaf11 commented Mar 4, 2023

@code-sparsh Thanks for your information! Yeah, someone might add a boilerplate for std::optional like this boostorg/spirit#270 (comment) . Also need to check the correct overloading func. I haven't made it and found it's a little bit beyond my ability. It would be fine that you can take this.

@mugr1x
Copy link
Contributor

mugr1x commented Mar 30, 2023

Hello, I also have some progress on this issue. Can I submit a PR ?

@SiarheiFedartsou
Copy link
Member Author

Hello, I also have some progress on this issue. Can I submit a PR ?

Sure, why not? :)

@mugr1x
Copy link
Contributor

mugr1x commented Apr 2, 2023

Now I found out that boost::spirit::x3 works well with std::optional (and has only minor modifications needed for working). However is it intentional that one implements a whole CSV parser instead of linking against something like libcsv3 ?
Anyway, I also want to apply for Google summer of code. I also think should talk to a potentional menter before.
@SiarheiFedartsou Can we possibly chat, you know about what exactly you need for the project idea and if it would be a good fit ?

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

No branches or pull requests

6 participants