Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
bc7be832
P
PaddleDetection
项目概览
PaddlePaddle
/
PaddleDetection
大约 1 年 前同步成功
通知
695
Star
11112
Fork
2696
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
184
列表
看板
标记
里程碑
合并请求
40
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
184
Issue
184
列表
看板
标记
里程碑
合并请求
40
合并请求
40
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
bc7be832
编写于
2月 09, 2018
作者:
Y
Yi Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update pre-commit
上级
35e61b3e
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
84 addition
and
46 deletion
+84
-46
paddle/fluid/pybind/pybind.h
paddle/fluid/pybind/pybind.h
+14
-0
paddle/string/piece.h
paddle/string/piece.h
+2
-2
paddle/string/printf_test.cc
paddle/string/printf_test.cc
+2
-2
paddle/string/tinyformat/tinyformat.h
paddle/string/tinyformat/tinyformat.h
+65
-41
paddle/string/to_string_test.cc
paddle/string/to_string_test.cc
+1
-1
未找到文件。
paddle/fluid/pybind/pybind.h
浏览文件 @
bc7be832
// Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Generated by the paddle/operator/CMakeLists.txt. DO NOT EDIT!
// Generated by the paddle/operator/CMakeLists.txt. DO NOT EDIT!
USE_CUDA_ONLY_OP
(
ncclAllReduce
);
USE_CUDA_ONLY_OP
(
ncclAllReduce
);
...
...
paddle/string/piece.h
浏览文件 @
bc7be832
...
@@ -28,7 +28,7 @@ namespace string {
...
@@ -28,7 +28,7 @@ namespace string {
// its syntax is simple as it doesn't own/manage the string, it is
// its syntax is simple as it doesn't own/manage the string, it is
// cheap to construct Pieces and pass them around.
// cheap to construct Pieces and pass them around.
class
Piece
{
class
Piece
{
public:
public:
static
const
size_t
npos
=
static_cast
<
size_t
>
(
-
1
);
static
const
size_t
npos
=
static_cast
<
size_t
>
(
-
1
);
// We provide non-explicit singleton constructors so users can
// We provide non-explicit singleton constructors so users can
...
@@ -55,7 +55,7 @@ class Piece {
...
@@ -55,7 +55,7 @@ class Piece {
// Return a string that contains the copy of the referenced data.
// Return a string that contains the copy of the referenced data.
std
::
string
ToString
()
const
{
return
std
::
string
(
data_
,
size_
);
}
std
::
string
ToString
()
const
{
return
std
::
string
(
data_
,
size_
);
}
private:
private:
const
char
*
data_
;
const
char
*
data_
;
size_t
size_
;
size_t
size_
;
...
...
paddle/string/printf_test.cc
浏览文件 @
bc7be832
...
@@ -24,6 +24,6 @@ TEST(StringPrintf, StringPrintf) {
...
@@ -24,6 +24,6 @@ TEST(StringPrintf, StringPrintf) {
long
hour
=
14
;
long
hour
=
14
;
int
min
=
44
;
int
min
=
44
;
EXPECT_EQ
(
std
::
string
(
"Wednesday, July 27, 14:44"
),
EXPECT_EQ
(
std
::
string
(
"Wednesday, July 27, 14:44"
),
paddle
::
string
::
Sprintf
(
"%s, %s %d, %.2d:%.2d"
,
weekday
,
month
,
day
,
paddle
::
string
::
Sprintf
(
hour
,
min
));
"%s, %s %d, %.2d:%.2d"
,
weekday
,
month
,
day
,
hour
,
min
));
}
}
paddle/string/tinyformat/tinyformat.h
浏览文件 @
bc7be832
...
@@ -147,7 +147,7 @@ namespace detail {
...
@@ -147,7 +147,7 @@ namespace detail {
// Test whether type T1 is convertible to type T2
// Test whether type T1 is convertible to type T2
template
<
typename
T1
,
typename
T2
>
template
<
typename
T1
,
typename
T2
>
struct
is_convertible
{
struct
is_convertible
{
private:
private:
// two types of different size
// two types of different size
struct
fail
{
struct
fail
{
char
dummy
[
2
];
char
dummy
[
2
];
...
@@ -160,7 +160,7 @@ struct is_convertible {
...
@@ -160,7 +160,7 @@ struct is_convertible {
static
succeed
tryConvert
(
const
T2
&
);
static
succeed
tryConvert
(
const
T2
&
);
static
const
T1
&
makeT1
();
static
const
T1
&
makeT1
();
public:
public:
// Standard trick: the (...) version of tryConvert will be chosen from
// Standard trick: the (...) version of tryConvert will be chosen from
// the overload set only if the version taking a T2 doesn't match.
// the overload set only if the version taking a T2 doesn't match.
// Then we compare the sizes of the return types to check which
// Then we compare the sizes of the return types to check which
...
@@ -170,7 +170,8 @@ struct is_convertible {
...
@@ -170,7 +170,8 @@ struct is_convertible {
// Format the value by casting to type fmtT. This default implementation
// Format the value by casting to type fmtT. This default implementation
// should never be called.
// should never be called.
template
<
typename
T
,
typename
fmtT
,
template
<
typename
T
,
typename
fmtT
,
bool
convertible
=
is_convertible
<
T
,
fmtT
>
::
value
>
bool
convertible
=
is_convertible
<
T
,
fmtT
>
::
value
>
struct
formatValueAsType
{
struct
formatValueAsType
{
static
void
invoke
(
std
::
ostream
&
/*out*/
,
const
T
&
/*value*/
)
{
assert
(
0
);
}
static
void
invoke
(
std
::
ostream
&
/*out*/
,
const
T
&
/*value*/
)
{
assert
(
0
);
}
...
@@ -240,8 +241,11 @@ TINYFORMAT_DEFINE_FORMAT_TRUNCATED_CSTR(char)
...
@@ -240,8 +241,11 @@ TINYFORMAT_DEFINE_FORMAT_TRUNCATED_CSTR(char)
/// operator<< to format the type T, with special cases for the %c and %p
/// operator<< to format the type T, with special cases for the %c and %p
/// conversions.
/// conversions.
template
<
typename
T
>
template
<
typename
T
>
inline
void
formatValue
(
std
::
ostream
&
out
,
const
char
*
/*fmtBegin*/
,
inline
void
formatValue
(
std
::
ostream
&
out
,
const
char
*
fmtEnd
,
int
ntrunc
,
const
T
&
value
)
{
const
char
*
/*fmtBegin*/
,
const
char
*
fmtEnd
,
int
ntrunc
,
const
T
&
value
)
{
// The mess here is to support the %c and %p conversions: if these
// The mess here is to support the %c and %p conversions: if these
// conversions are active we try to convert the type to a char or const
// conversions are active we try to convert the type to a char or const
// void* respectively and format that instead of the value itself. For the
// void* respectively and format that instead of the value itself. For the
...
@@ -264,8 +268,11 @@ inline void formatValue(std::ostream &out, const char * /*fmtBegin*/,
...
@@ -264,8 +268,11 @@ inline void formatValue(std::ostream &out, const char * /*fmtBegin*/,
// Overloaded version for char types to support printing as an integer
// Overloaded version for char types to support printing as an integer
#define TINYFORMAT_DEFINE_FORMATVALUE_CHAR(charType) \
#define TINYFORMAT_DEFINE_FORMATVALUE_CHAR(charType) \
inline void formatValue(std::ostream &out, const char *
/*fmtBegin*/
, \
inline void formatValue(std::ostream &out, \
const char *fmtEnd, int
/**/
, charType value) { \
const char *
/*fmtBegin*/
, \
const char *fmtEnd, \
int
/**/
, \
charType value) { \
switch (*(fmtEnd - 1)) { \
switch (*(fmtEnd - 1)) { \
case 'u': \
case 'u': \
case 'd': \
case 'd': \
...
@@ -475,7 +482,7 @@ namespace detail {
...
@@ -475,7 +482,7 @@ namespace detail {
// each argument to be allocated as a homogenous array inside FormatList
// each argument to be allocated as a homogenous array inside FormatList
// whereas a naive implementation based on inheritance does not.
// whereas a naive implementation based on inheritance does not.
class
FormatArg
{
class
FormatArg
{
public:
public:
FormatArg
()
{}
FormatArg
()
{}
template
<
typename
T
>
template
<
typename
T
>
...
@@ -484,17 +491,22 @@ class FormatArg {
...
@@ -484,17 +491,22 @@ class FormatArg {
m_formatImpl
(
&
formatImpl
<
T
>
),
m_formatImpl
(
&
formatImpl
<
T
>
),
m_toIntImpl
(
&
toIntImpl
<
T
>
)
{}
m_toIntImpl
(
&
toIntImpl
<
T
>
)
{}
void
format
(
std
::
ostream
&
out
,
const
char
*
fmtBegin
,
const
char
*
fmtEnd
,
void
format
(
std
::
ostream
&
out
,
const
char
*
fmtBegin
,
const
char
*
fmtEnd
,
int
ntrunc
)
const
{
int
ntrunc
)
const
{
m_formatImpl
(
out
,
fmtBegin
,
fmtEnd
,
ntrunc
,
m_value
);
m_formatImpl
(
out
,
fmtBegin
,
fmtEnd
,
ntrunc
,
m_value
);
}
}
int
toInt
()
const
{
return
m_toIntImpl
(
m_value
);
}
int
toInt
()
const
{
return
m_toIntImpl
(
m_value
);
}
private:
private:
template
<
typename
T
>
template
<
typename
T
>
static
void
formatImpl
(
std
::
ostream
&
out
,
const
char
*
fmtBegin
,
static
void
formatImpl
(
std
::
ostream
&
out
,
const
char
*
fmtEnd
,
int
ntrunc
,
const
void
*
value
)
{
const
char
*
fmtBegin
,
const
char
*
fmtEnd
,
int
ntrunc
,
const
void
*
value
)
{
formatValue
(
out
,
fmtBegin
,
fmtEnd
,
ntrunc
,
*
static_cast
<
const
T
*>
(
value
));
formatValue
(
out
,
fmtBegin
,
fmtEnd
,
ntrunc
,
*
static_cast
<
const
T
*>
(
value
));
}
}
...
@@ -504,8 +516,11 @@ class FormatArg {
...
@@ -504,8 +516,11 @@ class FormatArg {
}
}
const
void
*
m_value
;
const
void
*
m_value
;
void
(
*
m_formatImpl
)(
std
::
ostream
&
out
,
const
char
*
fmtBegin
,
void
(
*
m_formatImpl
)(
std
::
ostream
&
out
,
const
char
*
fmtEnd
,
int
ntrunc
,
const
void
*
value
);
const
char
*
fmtBegin
,
const
char
*
fmtEnd
,
int
ntrunc
,
const
void
*
value
);
int
(
*
m_toIntImpl
)(
const
void
*
value
);
int
(
*
m_toIntImpl
)(
const
void
*
value
);
};
};
...
@@ -554,10 +569,12 @@ inline const char *printFormatStringLiteral(std::ostream &out,
...
@@ -554,10 +569,12 @@ inline const char *printFormatStringLiteral(std::ostream &out,
// necessary to pull out variable width and precision . The function returns a
// necessary to pull out variable width and precision . The function returns a
// pointer to the character after the end of the current format spec.
// pointer to the character after the end of the current format spec.
inline
const
char
*
streamStateFromFormat
(
std
::
ostream
&
out
,
inline
const
char
*
streamStateFromFormat
(
std
::
ostream
&
out
,
bool
&
spacePadPositive
,
int
&
ntrunc
,
bool
&
spacePadPositive
,
int
&
ntrunc
,
const
char
*
fmtStart
,
const
char
*
fmtStart
,
const
detail
::
FormatArg
*
formatters
,
const
detail
::
FormatArg
*
formatters
,
int
&
argIndex
,
int
numFormatters
)
{
int
&
argIndex
,
int
numFormatters
)
{
if
(
*
fmtStart
!=
'%'
)
{
if
(
*
fmtStart
!=
'%'
)
{
TINYFORMAT_ERROR
(
TINYFORMAT_ERROR
(
"tinyformat: Not enough conversion specifiers in format string"
);
"tinyformat: Not enough conversion specifiers in format string"
);
...
@@ -733,8 +750,10 @@ inline const char *streamStateFromFormat(std::ostream &out,
...
@@ -733,8 +750,10 @@ inline const char *streamStateFromFormat(std::ostream &out,
}
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
inline
void
formatImpl
(
std
::
ostream
&
out
,
const
char
*
fmt
,
inline
void
formatImpl
(
std
::
ostream
&
out
,
const
detail
::
FormatArg
*
formatters
,
int
numFormatters
)
{
const
char
*
fmt
,
const
detail
::
FormatArg
*
formatters
,
int
numFormatters
)
{
// Saved stream state
// Saved stream state
std
::
streamsize
origWidth
=
out
.
width
();
std
::
streamsize
origWidth
=
out
.
width
();
std
::
streamsize
origPrecision
=
out
.
precision
();
std
::
streamsize
origPrecision
=
out
.
precision
();
...
@@ -746,9 +765,13 @@ inline void formatImpl(std::ostream &out, const char *fmt,
...
@@ -746,9 +765,13 @@ inline void formatImpl(std::ostream &out, const char *fmt,
fmt
=
printFormatStringLiteral
(
out
,
fmt
);
fmt
=
printFormatStringLiteral
(
out
,
fmt
);
bool
spacePadPositive
=
false
;
bool
spacePadPositive
=
false
;
int
ntrunc
=
-
1
;
int
ntrunc
=
-
1
;
const
char
*
fmtEnd
=
const
char
*
fmtEnd
=
streamStateFromFormat
(
out
,
streamStateFromFormat
(
out
,
spacePadPositive
,
ntrunc
,
fmt
,
formatters
,
spacePadPositive
,
argIndex
,
numFormatters
);
ntrunc
,
fmt
,
formatters
,
argIndex
,
numFormatters
);
if
(
argIndex
>=
numFormatters
)
{
if
(
argIndex
>=
numFormatters
)
{
// Check args remain after reading any variable width/precision
// Check args remain after reading any variable width/precision
TINYFORMAT_ERROR
(
"tinyformat: Not enough format arguments"
);
TINYFORMAT_ERROR
(
"tinyformat: Not enough format arguments"
);
...
@@ -797,14 +820,15 @@ inline void formatImpl(std::ostream &out, const char *fmt,
...
@@ -797,14 +820,15 @@ inline void formatImpl(std::ostream &out, const char *fmt,
/// information has been stripped from the arguments, leaving just enough of a
/// information has been stripped from the arguments, leaving just enough of a
/// common interface to perform formatting as required.
/// common interface to perform formatting as required.
class
FormatList
{
class
FormatList
{
public:
public:
FormatList
(
detail
::
FormatArg
*
formatters
,
int
N
)
FormatList
(
detail
::
FormatArg
*
formatters
,
int
N
)
:
m_formatters
(
formatters
),
m_N
(
N
)
{}
:
m_formatters
(
formatters
),
m_N
(
N
)
{}
friend
void
vformat
(
std
::
ostream
&
out
,
const
char
*
fmt
,
friend
void
vformat
(
std
::
ostream
&
out
,
const
char
*
fmt
,
const
FormatList
&
list
);
const
FormatList
&
list
);
private:
private:
const
detail
::
FormatArg
*
m_formatters
;
const
detail
::
FormatArg
*
m_formatters
;
int
m_N
;
int
m_N
;
};
};
...
@@ -817,7 +841,7 @@ namespace detail {
...
@@ -817,7 +841,7 @@ namespace detail {
// Format list subclass with fixed storage to avoid dynamic allocation
// Format list subclass with fixed storage to avoid dynamic allocation
template
<
int
N
>
template
<
int
N
>
class
FormatListN
:
public
FormatList
{
class
FormatListN
:
public
FormatList
{
public:
public:
template
<
typename
...
Args
>
template
<
typename
...
Args
>
FormatListN
(
const
Args
&
...
args
)
FormatListN
(
const
Args
&
...
args
)
:
FormatList
(
&
m_formatterStore
[
0
],
N
),
:
FormatList
(
&
m_formatterStore
[
0
],
N
),
...
@@ -825,14 +849,14 @@ class FormatListN : public FormatList {
...
@@ -825,14 +849,14 @@ class FormatListN : public FormatList {
static_assert
(
sizeof
...(
args
)
==
N
,
"Number of args must be N"
);
static_assert
(
sizeof
...(
args
)
==
N
,
"Number of args must be N"
);
}
}
private:
private:
FormatArg
m_formatterStore
[
N
];
FormatArg
m_formatterStore
[
N
];
};
};
// Special 0-arg version - MSVC says zero-sized C array in struct is nonstandard
// Special 0-arg version - MSVC says zero-sized C array in struct is nonstandard
template
<
>
template
<
>
class
FormatListN
<
0
>
:
public
FormatList
{
class
FormatListN
<
0
>
:
public
FormatList
{
public:
public:
FormatListN
()
:
FormatList
(
0
,
0
)
{}
FormatListN
()
:
FormatList
(
0
,
0
)
{}
};
};
...
...
paddle/string/to_string_test.cc
浏览文件 @
bc7be832
...
@@ -17,7 +17,7 @@ limitations under the License. */
...
@@ -17,7 +17,7 @@ limitations under the License. */
constexpr
char
kOutputString
[]
=
"User Defined Output"
;
constexpr
char
kOutputString
[]
=
"User Defined Output"
;
class
UserDefinedClass
{
class
UserDefinedClass
{
public:
public:
};
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
s
,
const
UserDefinedClass
&
ins
)
{
std
::
ostream
&
operator
<<
(
std
::
ostream
&
s
,
const
UserDefinedClass
&
ins
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录