Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F61515581
string_util.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, May 7, 03:56
Size
1 KB
Mime Type
text/x-c++
Expires
Thu, May 9, 03:56 (2 d)
Engine
blob
Format
Raw Data
Handle
17522236
Attached To
R12667 gbench-stream
string_util.h
View Options
#ifndef BENCHMARK_STRING_UTIL_H_
#define BENCHMARK_STRING_UTIL_H_
#include <sstream>
#include <string>
#include <utility>
#include <vector>
#include "benchmark/export.h"
#include "check.h"
#include "internal_macros.h"
namespace
benchmark
{
void
AppendHumanReadable
(
int
n
,
std
::
string
*
str
);
std
::
string
HumanReadableNumber
(
double
n
,
double
one_k
=
1024.0
);
BENCHMARK_EXPORT
#if defined(__MINGW32__)
__attribute__
((
format
(
__MINGW_PRINTF_FORMAT
,
1
,
2
)))
#elif defined(__GNUC__)
__attribute__
((
format
(
printf
,
1
,
2
)))
#endif
std
::
string
StrFormat
(
const
char
*
format
,
...);
inline
std
::
ostream
&
StrCatImp
(
std
::
ostream
&
out
)
BENCHMARK_NOEXCEPT
{
return
out
;
}
template
<
class
First
,
class
...
Rest
>
inline
std
::
ostream
&
StrCatImp
(
std
::
ostream
&
out
,
First
&&
f
,
Rest
&&
...
rest
)
{
out
<<
std
::
forward
<
First
>
(
f
);
return
StrCatImp
(
out
,
std
::
forward
<
Rest
>
(
rest
)...);
}
template
<
class
...
Args
>
inline
std
::
string
StrCat
(
Args
&&
...
args
)
{
std
::
ostringstream
ss
;
StrCatImp
(
ss
,
std
::
forward
<
Args
>
(
args
)...);
return
ss
.
str
();
}
BENCHMARK_EXPORT
std
::
vector
<
std
::
string
>
StrSplit
(
const
std
::
string
&
str
,
char
delim
);
// Disable lint checking for this block since it re-implements C functions.
// NOLINTBEGIN
#ifdef BENCHMARK_STL_ANDROID_GNUSTL
/*
* GNU STL in Android NDK lacks support for some C++11 functions, including
* stoul, stoi, stod. We reimplement them here using C functions strtoul,
* strtol, strtod. Note that reimplemented functions are in benchmark::
* namespace, not std:: namespace.
*/
unsigned
long
stoul
(
const
std
::
string
&
str
,
size_t
*
pos
=
nullptr
,
int
base
=
10
);
int
stoi
(
const
std
::
string
&
str
,
size_t
*
pos
=
nullptr
,
int
base
=
10
);
double
stod
(
const
std
::
string
&
str
,
size_t
*
pos
=
nullptr
);
#else
using
std
::
stod
;
// NOLINT(misc-unused-using-decls)
using
std
::
stoi
;
// NOLINT(misc-unused-using-decls)
using
std
::
stoul
;
// NOLINT(misc-unused-using-decls)
#endif
// NOLINTEND
}
// end namespace benchmark
#endif
// BENCHMARK_STRING_UTIL_H_
Event Timeline
Log In to Comment