除了报错信息更加友好以外,性能是增了还是减了?
1
arrowna 2016-02-14 21:58:36 +08:00
谁来重写?哪里看到的消息?
|
4
rushcheyo OP 消息出处: https://www.reddit.com/r/cpp/comments/3dzv6i/eric_niebler_on_twitter_the_concepts_ts_was_voted/
提案链接:暂不公开,但是可以看 Bjarne Stroustrup 的论文 Thoughts on C++17 中 Concepts 的部分: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2015/n4361.pdf |
6
kotokz 2016-02-14 23:23:13 +08:00
compile 速度会有提升,最起码失败的更快了。
|
7
rushcheyo OP @kotokz 唔…… Compile 速度提升 GCC 的 Concepts 实现者已经提到了(他说大概 7 - 10x )。然而代码膨胀等方面呢?
还有现在这个 Concepts ,与 abstract class 到底区别在哪? Abstract class 相比还更加灵活(因为有了继承的不同选择)。 |
8
kotokz 2016-02-15 00:02:59 +08:00
@rushcheyo
code bloat 最大的影响就是 complie time. dead code 会在 link 的时候 eliminate 掉 concepts 是跟 template 有关系, abstract class 更多是 polymorphism |
9
northisland 2016-02-15 00:08:37 +08:00 via iPhone 3
|
10
rushcheyo OP |
11
bombless 2016-02-15 01:51:33 +08:00 via Android
concept 很重要,不了解的人可以说是还不了解 cpp 有多屌。 concept 解决的问题跟 abstract class 解决的问题没啥关联,没有可比性
不只是报错消息,写模板代码的思路会小有变化,写的时候思路更清晰了。 不过多数人并不写模板代码,对这些人来说的确主要是报错信息变了 |
12
minsheng 2016-02-15 02:48:41 +08:00 via iPhone 1
不就一个 type class ……能有多屌,看看 Haskell 加了 type class 后多出哪些东西就好了
|
13
hqs123 2016-02-15 08:56:15 +08:00
请教楼主 Concepts 是什么东西?
|
15
raysonx 2016-02-15 10:20:33 +08:00 via Android
C++又在加新特性了。。。
|
16
rushcheyo OP |
17
breeswish 2016-02-15 14:40:27 +08:00
回答问题:这和运行时性能没关系,运行时性能不会增也不会减;当然,编译时会减少
提出问题:在哪里有说“整个 STL 都即将用 Concepts 重写” |
18
rushcheyo OP @breeswish
然而 traits 能够优化了。其实原来就能写成: #if is_same<..., ...> … #elif is_same<..., ...> ... #endif 以消除函数调用的开销。 你提的问题 4# 写了。 |
19
rushcheyo OP @breeswish is_same 可以修改定义为这样以支持:
template <typename T, typename U> constexpr const bool is_same = false; template <typename T> constexpr const bool is_same<T, T> = true; |
20
wbsdty331 2016-02-16 08:14:45 +08:00
有的公司不让用.
|