Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Harfbuzz
提交
0268db11
T
Third Party Harfbuzz
项目概览
OpenHarmony
/
Third Party Harfbuzz
接近 2 年 前同步成功
通知
1
Star
18
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Harfbuzz
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0268db11
编写于
4月 24, 2019
作者:
B
Behdad Esfahbod
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[map] Use hb_invoke() with pointer-to-method
上级
8f79a575
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
14 addition
and
3 deletion
+14
-3
src/hb-algs.hh
src/hb-algs.hh
+4
-1
src/hb-map.hh
src/hb-map.hh
+2
-2
src/test-algs.cc
src/test-algs.cc
+8
-0
未找到文件。
src/hb-algs.hh
浏览文件 @
0268db11
...
@@ -73,7 +73,7 @@ struct
...
@@ -73,7 +73,7 @@ struct
/* Pointer-to-member-function. */
/* Pointer-to-member-function. */
template
<
typename
Appl
,
typename
Val1
,
typename
...
Vals
>
auto
template
<
typename
Appl
,
typename
Val1
,
typename
...
Vals
>
auto
impl
(
Appl
&&
a
,
hb_priority
<
2
>
,
Val1
&&
v1
,
Vals
&&
...
vs
)
const
HB_AUTO_RETURN
impl
(
Appl
&&
a
,
hb_priority
<
2
>
,
Val1
&&
v1
,
Vals
&&
...
vs
)
const
HB_AUTO_RETURN
(
hb_deref_pointer
(
hb_forward
<
Val1
>
(
v1
)).
*
hb_forward
<
Appl
>
(
a
)
(
hb_forward
<
Vals
>
(
vs
)...))
(
(
hb_deref_pointer
(
hb_forward
<
Val1
>
(
v1
)).
*
hb_forward
<
Appl
>
(
a
)
)
(
hb_forward
<
Vals
>
(
vs
)...))
/* Pointer-to-member. */
/* Pointer-to-member. */
template
<
typename
Appl
,
typename
Val
>
auto
template
<
typename
Appl
,
typename
Val
>
auto
...
@@ -86,6 +86,9 @@ struct
...
@@ -86,6 +86,9 @@ struct
(
hb_deref_pointer
(
hb_forward
<
Appl
>
(
a
))
(
hb_forward
<
Vals
>
(
vs
)...))
(
hb_deref_pointer
(
hb_forward
<
Appl
>
(
a
))
(
hb_forward
<
Vals
>
(
vs
)...))
public:
public:
template
<
typename
Appl
,
typename
Val1
,
typename
...
Vals
>
auto
impl2
(
Appl
&&
a
,
hb_priority
<
2
>
,
Val1
&&
v1
,
Vals
&&
...
vs
)
const
HB_AUTO_RETURN
(
hb_deref_pointer
(
hb_forward
<
Val1
>
(
v1
)).
*
hb_forward
<
Appl
>
(
a
)
(
hb_forward
<
Vals
>
(
vs
)...))
template
<
typename
Appl
,
typename
...
Vals
>
auto
template
<
typename
Appl
,
typename
...
Vals
>
auto
operator
()
(
Appl
&&
a
,
Vals
&&
...
vs
)
const
HB_AUTO_RETURN
operator
()
(
Appl
&&
a
,
Vals
&&
...
vs
)
const
HB_AUTO_RETURN
...
...
src/hb-map.hh
浏览文件 @
0268db11
...
@@ -122,7 +122,7 @@ struct hb_hashmap_t
...
@@ -122,7 +122,7 @@ struct hb_hashmap_t
return
false
;
return
false
;
}
}
+
hb_iter
(
new_items
,
new_size
)
+
hb_iter
(
new_items
,
new_size
)
|
hb_apply
(
[]
(
item_t
&
_
)
{
_
.
clear
();
})
/* TODO make pointer-to-methods invokable. */
|
hb_apply
(
&
item_t
::
clear
)
;
;
unsigned
int
old_size
=
mask
+
1
;
unsigned
int
old_size
=
mask
+
1
;
...
@@ -193,7 +193,7 @@ struct hb_hashmap_t
...
@@ -193,7 +193,7 @@ struct hb_hashmap_t
return
;
return
;
if
(
items
)
if
(
items
)
+
hb_iter
(
items
,
mask
+
1
)
+
hb_iter
(
items
,
mask
+
1
)
|
hb_apply
(
[]
(
item_t
&
_
)
{
_
.
clear
();
})
/* TODO make pointer-to-methods invokable. */
|
hb_apply
(
&
item_t
::
clear
)
;
;
population
=
occupancy
=
0
;
population
=
occupancy
=
0
;
...
...
src/test-algs.cc
浏览文件 @
0268db11
...
@@ -34,6 +34,11 @@ test_func (int a, char **b)
...
@@ -34,6 +34,11 @@ test_func (int a, char **b)
return
b
?
b
[
a
]
:
nullptr
;
return
b
?
b
[
a
]
:
nullptr
;
}
}
struct
A
{
void
a
()
{}
};
int
int
main
(
int
argc
,
char
**
argv
)
main
(
int
argc
,
char
**
argv
)
{
{
...
@@ -54,5 +59,8 @@ main (int argc, char **argv)
...
@@ -54,5 +59,8 @@ main (int argc, char **argv)
hb_invoke
(
test_func
,
0
,
nullptr
);
hb_invoke
(
test_func
,
0
,
nullptr
);
A
a
;
hb_invoke
(
&
A
::
a
,
a
);
return
0
;
return
0
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录