Take in account, that you can not write any program, that will be
successfully executed on "125W quad core monster" and on "toaster", at
least there are no useful programs like this.
There is no easy way to unify hardware, but in general (undepended
from any language) case, there is a way to be portable and to be
compiled exactly to hardware simultaneously. To do it your program
must not refer to hardware directly, but refer to abstract types from
levels of portabibity, for example:
//exactly 16 bit of memory
typename int_p16
- in systems where CPU can not use the cluster compiler will do slow
runtime workaround
- useful for binary protability between different hardware
//at least 16 bit of memory
typename int_u16
- in systems where CPU can not use the clusters compiler will extend
memory up to nearest CPU block, if there is no the block compiler will
do slow runtime workaround
- useful to keep data range with fast CPU access
//fastest CPU block
typename int
- can be usless type due to overhead or overflow
And so on. While programming, you need to select correct type. The
problem of "only one type to select" can be resolved by object-
oriented methods.
It is evidently, some even low-level properties of C++ mus be
improved, but this is not easy to do.
grizlyk