[
https://issues.apache.org/jira/browse/MINIFICPP-910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16858355#comment-16858355
]
Arpad Boda edited comment on MINIFICPP-910 at 6/7/19 7:13 AM:
--------------------------------------------------------------
Let me write the history of this as I think that's going to explain how this PR
became this big.
I just saw multiple PRs recently where people had to do this manually, so I
decided to extend StringUtils with a function that works mostly like join in
Python.
I just wanted to add the template functions to allow concatenation of strings
and numbers from different types of container. This shouldn't change anything,
just add a couple of functions. Although I found that StringUtils is not a
namespace, but a class. That's problematic as all the template functions added
there become members, which prevents using SFINAE.
Because of this I changed it to be a namespace, but that lead to either inline
the functions or move them to a separate source file to avoid linking issues.
When I moved those out I got a bunch of linter errors, which only seem to
appear for cpp files (I'm not sure about the reason yet), so I had to fix them.
I think 0.7.0 target is not fully justified any more given the impact of the
change became much more than I first meant to, so moving to 0.8.0 might to give
us some time to test and make sure it works on all targets. I tested on U18,
Mac and Win, but that's not all we need.
Overall I still think that converting StringUtils to a namespace (which is
should be, instead of a class) is a bit painful but necessary step we have to
take.
was (Author: aboda):
Let me write the history of this as I think that's going to explain this PR
became this big.
I just saw multiple PRs recently where people had to do this manually, so I
decided to extend StringUtils with a function that works mostly like join in
Python.
I just wanted to add the template functions to allow concatenation of strings
and numbers from different types of container. This shouldn't change anything,
just add a couple of functions. Although I found that StringUtils is not a
namespace, but a class. That's problematic as all the template functions added
there become members, which prevents using SFINAE.
Because of this I changed it to be a namespace, but that lead to either inline
the functions or move them to a separate source file to avoid linking issues.
When I moved those out I got a bunch of linter errors, which only seem to
appear for cpp files (I'm not sure about the reason yet), so I had to fix them.
I think 0.7.0 target is not fully justified any more given the impact of the
change became much more than I first meant to, so moving to 0.8.0 might to give
us some time to test and make sure it works on all targets. I tested on U18,
Mac and Win, but that's not all we need.
Overall I still think that converting StringUtils to a namespace (which is
should be, instead of a class) is a bit painful but necessary step we have to
take.
> Extend StringUtils with string join capability
> ----------------------------------------------
>
> Key: MINIFICPP-910
> URL: https://issues.apache.org/jira/browse/MINIFICPP-910
> Project: Apache NiFi MiNiFi C++
> Issue Type: Improvement
> Reporter: Arpad Boda
> Assignee: Arpad Boda
> Priority: Major
> Fix For: 0.7.0
>
> Time Spent: 4h 20m
> Remaining Estimate: 0h
>
> String join is frequently needed and MiNiFi code contains a lot of
> copy-pasted implementations for that. A general solution should be provided.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)