C ++由于其重量而破坏的危险,碎片危险 - C ++ 0x [英] C++ danger to break due to its weight, fragmentation danger - C++0x

查看:47
本文介绍了C ++由于其重量而破坏的危险,碎片危险 - C ++ 0x的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望看到你对这些的看法。

C ++ 98已经是一种大型语言,因为它支持4种范例,每种情况都支持很好,具有最佳的空间和时间效率。这是好的。
优秀。


从我读过的关于C ++ 0x的几件事情,除了一些C99 ......

功能(实际上我想到了其他一些术语,

但这是另一个讨论的主题),库扩展了

new设施,其中一些*不直接由语言结构支持*

(=异国情调),如网络。此外,并非所有新功能都需要

标准才能在任何地方实施,因为并非所有这些

功能都可用于所有计算机系统(例如网络

再次)。


这是与初始语言理想的背离,即提供一个定义明确的

所有现有计算机系统的功能子集

有一个完整的语言。今天,所有C ++ 98语言结构

都可用于所有符合C ++ 98的编译器。

设备的存在不需要在兼容的实现中实现/>
C ++ 0x实现,本身就是碎片。在符合C ++ 0x的编译器中编译的ISO C ++ 0x代码将无法在另一个编译器中编译,尽管计算机系统可能具有可用的功能(例如网络)

再次)。因此,可能有一个C ++ 0x网络代码在编译器中编译,

而在另一个编译器中没有。为什么要使用C ++ 0x工具编写代码

哪些不保证可以在任何地方编译,甚至不在同一平台上使用不同的编译器进行
?这些设施的可用性应该留给第三方系统特定的和框架API(例如.NET,QT,

等)。程序员是否会编写ISO C ++ 0x。网络代码不保证

即使在同一平台上也可以在另一个符合ISO C ++ 0x标准的编译器中编译,

或者他会使用他平台的API吗?

由于这个原因,大多数编译器实现者很可能会使用所需的东西来支持
。这意味着我们不再需要一个连贯的

语言,而且这个定义(标准本身)。

语言结构不支持库设施的想法

(=异国情调),不适合系统编程语言,必须是自我依赖的
。这意味着这些设施必须不是图书馆的一部分,或者它们被认为是非常必要的,因此必须将基本的

语言结构添加到核心语言中。由于它们是异国情调,我们可以得出结论,它们不是非常必要的。不需要的

语言设施增加了额外的重量。对于语言。

图书馆的大量扩展的想法(我在这里谈论

非奇特的东西)很不错,但为语言增加了很多额外的重量。

结果是每个实现者都可以选择只实现他认为对所有这些东西重要的东西,即使只坚持使用C ++ 98
库。这意味着额外的碎片化,这次是按标准*核心所需的
*。在这种情况下,

语言有很大的危险来突破它的权重。图书馆的新核心可能实际上是非便携式的,这意味着堕胎最新的部分是C ++ 0x的
。如果发生这种情况,C ++可能会灭绝!

我正在谈论可能存在的危险,所以请温柔地批评你。



问候,


Ioannis Vranos

解决方案

2004年4月19日星期一09:26:26 +0300,Ioannis Vranos

< iv*@guesswh.at.emails.ru>在comp.lang.c ++中写道:

我想看看你对这些的看法。

C ++ 98已经是一种大语言,因为它支持4个范例,每个范例都得到了很好的支持,具有最佳的空间和时间效率。这是非常好的。

从我读过的关于C ++ 0x的一些内容,除了一些C99 ......
功能(实际上其他一些术语来了)在我的脑海里本能地,但它是讨论的另一个主题),有新设施的图书馆扩展,其中一些*不直接由语言结构支持*
(=异国情调)喜欢网络。此外,并非所有新功能都需要在任何地方实施,因为并非所有这些功能都可用于所有计算机系统(例如再次联网)。 / blockquote>


[snip]


这个新闻组用于讨论使用现有的C ++语言

今天。用于讨论可能的未来的(主持的)新闻组是对c ++语言标准的补充或更改是comp.std.c ++。

这篇文章属于那里,而不是这里。 />

-

Jack Klein

主页: http://JK-Technology.Com

常见问题解答

comp.lang.c http://www.eskimo.com/~scs/C-faq/top。 html

comp.lang.c ++ http://www.parashift.com/c++-faq-lite/

alt.comp.lang.learn.c-c ++
http://www.contrib.andrew.cmu.edu/~ a ... FAQ-acllc.html


" Jack Klein" < JA ******* @ spamcop.net>在消息中写道

news:dv ******************************** @ 4ax.com ...

2004年4月19日星期一09:26:26 +0300,Ioannis Vranos
< iv*@guesswh.at.emails.ru>在comp.lang.c ++中写道:

我想看看你对这些的看法。

C ++ 98已经是一种大语言,因为它支持4个范例和每个
一个得到很好的支持,具有最佳的空间和时间效率。这是非常好的。

从我读过的关于C ++ 0x的一些内容,除了一些
C99 ...功能(实际上其他一些术语来了)在我的脑海中本能地获得这个
,但这是讨论的另一个主题),有新设施的库扩展
,其中一些*不直接用语言支持
构造*(=异国情调)喜欢网络。此外,并非所有新功能都需要在任何地方实施标准,因为并非所有
此功能都可用于所有计算机系统(例如再次联网)。 / blockquote>

[snip]

这个新闻组是用于讨论今天使用的C ++语言。用于讨论C ++语言标准可能的未来添加或更改的(主持)新闻组是comp.std.c ++。
这篇文章属于那里,而不是这里。




我检查了clc常见问题解答并没有看到对当前标准

讨论的任何限制。


Ioannis Vranos


" Ioannis Vranos" < iv*@guesswh.at.emails.ru>在消息中写道

news:c5 *********** @ ulysses.noc.ntua.gr ...


我查了一下clc FAQ并没有看到对当前标准讨论的任何限制。



我的意思是:我检查了clc ++常见问题解答并没有看到任何限制

未来标准功能讨论。


Ioannis Vranos


I would like to see your views on these.
C++98 is already a large language since it supports 4 paradigms and each one
is supported well, with optimal space and time efficiency. And this is
excellent.

From the few things that i have read about C++0x, in addition to some C99...
features (actually some other term comes in my mind for this instinctively,
but it is another subject for discussion), there is library expansion with
new facilities, some of them *not supported directly by language constructs*
(= exotic) like networking. Also not all of the new features will be
required by the standard to be implemented everywhere, since not all of this
functionality will be available in all computer systems (e.g. networking
again).

This is a departure from the initial language ideals, that is to provide a
common well-defined functionality subset of all existing computer systems
out there with an integral language. Today, all C++98 language constructs
are available to all C++98 compliant compilers.
The existence of facilities not required to be implemented in a compliant
C++0x implementation, is by itself fragmentation. ISO C++0x code that
compiles in a C++0x compliant compiler will not compile in another, although
the computer system may have the functionality available (e.g. networking
again). So one may have C++0x networking code that compiles in a compiler,
and does not in another. Why would one write code using C++0x facilities
which is not guaranteed to compile everywhere, not even in the same platform
with a different compiler? The availability of such facilities should be
left to third party system-specific and framework APIs (e.g. .NET, QT,
etc). Will a programmer write "ISO C++0x" network code not guaranteed to
compile in another ISO C++0x compliant compiler even in the same platform,
or will he use the APIs of his platform?

Due to this, it is very possible that most compiler implementors will stick
with the required stuff. This means that no longer we will have a coherent
language, and this by definition (the standard itself).
The idea of library facilities not supported by language constructs
(=exotic), does not fit in a systems programming language, which must be
self-dependent. This means that either those facilities must not be part of
the library, or they are deemed very necessary and thus the fundamental
language constructs must be added to the core language. Since they are
exotic, we can conclude that they are not very necessary. The unneeded
language facilities add extra "weight" to the language.
The idea of numerous extensions to the library (i am talking about
non-exotic stuff here) is nice, but adds much extra weight to the language.
The result is that each implementor may choose to implement only what he
considers as important from all this stuff, even to stick only with C++98
library. This means extra fragmentation, and this time to the
*required-by-the-standard* core. In this case, there is great danger the
language to break by its weight. The new core of the library may become
non-portable de facto, and this will mean the abortion of the most new part
of C++0x. If this happens, C++ may become extinct!
I am talking about possible dangers, so please be gentle with your critique.


Regards,

Ioannis Vranos

解决方案

On Mon, 19 Apr 2004 09:26:26 +0300, "Ioannis Vranos"
<iv*@guesswh.at.emails.ru> wrote in comp.lang.c++:

I would like to see your views on these.
C++98 is already a large language since it supports 4 paradigms and each one
is supported well, with optimal space and time efficiency. And this is
excellent.

From the few things that i have read about C++0x, in addition to some C99...
features (actually some other term comes in my mind for this instinctively,
but it is another subject for discussion), there is library expansion with
new facilities, some of them *not supported directly by language constructs*
(= exotic) like networking. Also not all of the new features will be
required by the standard to be implemented everywhere, since not all of this
functionality will be available in all computer systems (e.g. networking
again).



[snip]

This newsgroup is for discussing using the C++ language that exists
today. The (moderated) newsgroup for discussing possible future
additions or changes to the C++ language standard is comp.std.c++.
This post belongs there, not here.

--
Jack Klein
Home: http://JK-Technology.Com
FAQs for
comp.lang.c http://www.eskimo.com/~scs/C-faq/top.html
comp.lang.c++ http://www.parashift.com/c++-faq-lite/
alt.comp.lang.learn.c-c++
http://www.contrib.andrew.cmu.edu/~a...FAQ-acllc.html


"Jack Klein" <ja*******@spamcop.net> wrote in message
news:dv********************************@4ax.com...

On Mon, 19 Apr 2004 09:26:26 +0300, "Ioannis Vranos"
<iv*@guesswh.at.emails.ru> wrote in comp.lang.c++:

I would like to see your views on these.
C++98 is already a large language since it supports 4 paradigms and each one is supported well, with optimal space and time efficiency. And this is
excellent.

From the few things that i have read about C++0x, in addition to some C99... features (actually some other term comes in my mind for this instinctively, but it is another subject for discussion), there is library expansion with new facilities, some of them *not supported directly by language constructs* (= exotic) like networking. Also not all of the new features will be
required by the standard to be implemented everywhere, since not all of this functionality will be available in all computer systems (e.g. networking
again).



[snip]

This newsgroup is for discussing using the C++ language that exists
today. The (moderated) newsgroup for discussing possible future
additions or changes to the C++ language standard is comp.std.c++.
This post belongs there, not here.



I checked the clc FAQ and did not see any restriction for current standard
discussion.


Ioannis Vranos


"Ioannis Vranos" <iv*@guesswh.at.emails.ru> wrote in message
news:c5***********@ulysses.noc.ntua.gr...


I checked the clc FAQ and did not see any restriction for current standard
discussion.


I meant: I checked the clc++ FAQ and did not see any restriction for
future-standard-features discussions.


Ioannis Vranos


这篇关于C ++由于其重量而破坏的危险,碎片危险 - C ++ 0x的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆