C++ is a general-purpose programming
language with high-level and low-level capabilities. It is a
statically typed, free-form, multi-paradigm, usually compiled
language supporting procedural programming, data abstraction,
object-oriented programming, and generic programming.
C++ is regarded as a mid-level language. This indicates that
C++ comprises a combination of both high-level and low-level
language features.
The C++ programming language standard was ratified in 1998 as
ISO/IEC 14882:1998, the current version of which is the 2003
version, ISO/IEC 14882:2003. A new version of the standard
(known informally as C++0x) is being developed.
Current work indicates that C++ will continue to capitalize
on its multi-paradigm nature. Notable expected improvements
are native support for threading and concepts that will make
working with templates easier. Adding garbage collection is
currently under heavy discussion. Boost.org is a group
working to make the most of C++ in its current form. They are
expanding C++'s functional and metaprogramming abilities and
also advise the C++ standards committee on which features
work well and which need improving.
Managed C++ is Microsoft's set of deviations
from C++, including grammatical and syntactic extensions,
keywords and attributes, to bring the C++ syntax and language
to the
.NET
Framework. Managed C++ is not a complete standalone, or fully
fledged programming language. These extensions allow C++ code
to be targeted to the Common Language Runtime (CLR) in the
form of managed code as well as continue to interoperate with
native code.
These managed extensions were released with Visual C++
.NET which
was one of the products released with Visual Studio
.NET (2002).
In late 2005, the Managed C++ extensions were significantly
revised to clarify and simplify syntax and expand
functionality to include managed generics. These new
extensions were designated C++/CLI and included in Microsoft
Visual Studio 2005. The term Managed C++ and the extensions
it refers to are thus deprecated and superseded by the new
extensions. The information provided in this article relates
to the older extensions.
"Managed" refers to that it is run in, or managed by, the
.NET virtual
machine that functions as a sandbox for enhanced security in
the form of more runtime checks, such as buffer overrun
checks. Additionally, applications written in Managed C++
compile to CIL Common Intermediate Language and not directly
to native CPU instructions like regular C++ applications do.
Managed C++ code can interoperate with any other language
also targeted for the CLR such as C# and Visual Basic
.NET as well
as make use of features provided by the CLR such as garbage
collection. This means Managed C++ occupies a unique position
in the gallery of
.NET
languages. It is the only language that can communicate
directly with
.NET
languages (such as C#, VB.NET) and native C++. The other
.NET
languages can only communicate with C++ code via PInvoke or
COM. But since Managed C++ can communicate directly in both
managed and unmanaged contexts, it is often used as a
"bridge". This allows C# and VB.NET to both hook into the
unmagaed unsafe domain that C++ usually inhabits and allows
programmers with a great deal of experience use this feature
to provide more functionality.
We can create highly scalable, native and managed C++
applications written using frameworks such as ATL, MFC and
COM++. Our developers have experience in writing C/C++
applications written on Unix/Linux and
Windows
and can create POSIX compliant software systems for mission
critical applictions.
Please
contact us
for more information.

Printer friendly PDF