Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
2f11444c
Commit
2f11444c
authored
Aug 27, 2015
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make string algorithms header-only
parent
09b43ffc
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
52 deletions
+18
-52
libcaf_core/CMakeLists.txt
libcaf_core/CMakeLists.txt
+0
-1
libcaf_core/caf/string_algorithms.hpp
libcaf_core/caf/string_algorithms.hpp
+18
-4
libcaf_core/src/string_algorithms.cpp
libcaf_core/src/string_algorithms.cpp
+0
-47
No files found.
libcaf_core/CMakeLists.txt
View file @
2f11444c
...
...
@@ -73,7 +73,6 @@ set (LIBCAF_CORE_SRCS
src/shared_spinlock.cpp
src/shutdown.cpp
src/singletons.cpp
src/string_algorithms.cpp
src/string_serialization.cpp
src/sync_request_bouncer.cpp
src/try_match.cpp
...
...
libcaf_core/caf/string_algorithms.hpp
View file @
2f11444c
...
...
@@ -40,10 +40,24 @@ inline std::string is_any_of(std::string arg) {
constexpr
bool
token_compress_on
=
false
;
void
split
(
std
::
vector
<
std
::
string
>&
result
,
const
std
::
string
&
str
,
const
std
::
string
&
delimiters
=
" "
,
bool
keep_empties
=
true
);
template
<
class
Container
,
class
Delim
>
void
split
(
Container
&
result
,
const
std
::
string
&
str
,
const
Delim
&
delims
,
bool
keep_all
=
true
)
{
size_t
pos
=
0
;
size_t
prev
=
0
;
while
((
pos
=
str
.
find_first_of
(
delims
,
prev
))
!=
std
::
string
::
npos
)
{
if
(
pos
>
prev
)
{
auto
substr
=
str
.
substr
(
prev
,
pos
-
prev
);
if
(
!
substr
.
empty
()
||
keep_all
)
{
result
.
push_back
(
std
::
move
(
substr
));
}
}
prev
=
pos
+
1
;
}
if
(
prev
<
str
.
size
())
{
result
.
push_back
(
str
.
substr
(
prev
,
std
::
string
::
npos
));
}
}
template
<
class
Iterator
>
class
iterator_range
{
...
...
libcaf_core/src/string_algorithms.cpp
deleted
100644 → 0
View file @
09b43ffc
/******************************************************************************
* ____ _ _____ *
* / ___| / \ | ___| C++ *
* | | / _ \ | |_ Actor *
* | |___ / ___ \| _| Framework *
* \____/_/ \_|_| *
* *
* Copyright (C) 2011 - 2015 *
* Dominik Charousset <dominik.charousset (at) haw-hamburg.de> *
* *
* Distributed under the terms and conditions of the BSD 3-Clause License or *
* (at your option) under the terms and conditions of the Boost Software *
* License 1.0. See accompanying files LICENSE and LICENSE_ALTERNATIVE. *
* *
* If you did not receive a copy of the license files, see *
* http://opensource.org/licenses/BSD-3-Clause and *
* http://www.boost.org/LICENSE_1_0.txt. *
******************************************************************************/
#include <sstream>
#include "caf/string_algorithms.hpp"
using
std
::
string
;
using
std
::
vector
;
namespace
caf
{
void
split
(
vector
<
string
>&
result
,
const
string
&
str
,
const
string
&
delims
,
bool
keep_all
)
{
size_t
pos
=
0
;
size_t
prev
=
0
;
while
((
pos
=
str
.
find_first_of
(
delims
,
prev
))
!=
string
::
npos
)
{
if
(
pos
>
prev
)
{
auto
substr
=
str
.
substr
(
prev
,
pos
-
prev
);
if
(
!
substr
.
empty
()
||
keep_all
)
{
result
.
push_back
(
std
::
move
(
substr
));
}
}
prev
=
pos
+
1
;
}
if
(
prev
<
str
.
size
())
{
result
.
push_back
(
str
.
substr
(
prev
,
string
::
npos
));
}
}
}
// namespace caf
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment