C++ Mappings

www.altova.com Print this Topic Previous Page Up One Level Next page

Home >  Projects and Code Engineering > UModel Element Mappings >

C++ Mappings

The table below shows the one-to-one correspondence between C++ code elements and UModel model elements, when importing from C++ code into model, or generating code from the model.

 

Support for C++ attributes is limited. Only standard built-in attributes such as [[noreturn]], [[carries_dependency]], [[deprecated]] will be recognized. Custom (user-defined) attributes will be ignored.

 

C++ Project

C++

UModel

Project

projectfile

projectfile

Component

directory

directory

 

C++ Namespace

C++

UModel

Namespace

name

name

Package <<namespace>>

 

C++ Class / Struct / Union

C++

UModel

Class

/

Struct

/

Union

name

name

Class

/

<<struct>> Class

/

<<union>>

Class

access specifier

public

visibility

public

protected

protected

private

private

filename

code file name

associated projectfile / directory

ComponentRealization

base specifier

base types

Generalization

virtual

Generalization <<virtual>>

access

Generalization <<visibility>> value

attributes

<<attributes>>

final

isFinalSpecialization

Template

Parameter

name

name

Template

Parameter

template parameter pack

parameterPack

type

property @type

default

default

Template

Specialization

arguments

arguments

<<specialization>>

Field

name

name

Property

access specifier

public

visibility

public

protected

protected

private

private

type

type

type modifiers

type modifier

static

static

mutable

<<mutable>>

thread_local

<<thread_local>>

const

<<const>>

constexpr

<<constexpr>>

in class initializer

default

attributes

<<attributes>>

volatile

<<volatile>>

variable template

<<varTemplate>>

Method

name

name

Operation

access specifier

public

visibility

public

protected

protected

private

private

static

static

virtual

<<virtual>>

= 0

<<purevirtual>>

const

<<const>>

inline

<<inline>>

= delete

<<delete>>

= default

<<default>>

override

<<overrride>>

final

<<final>>

volatile

<<volatile>>

constexpr

<<constexpr>>

noexcept


<<noexcept>>

throw

exceptions

<<throw>>

specification

attributes

<<attributes>>

Template

parameter

name

name

Template

Parameter

template parameter pack

parameterPack

type

property @type

default

default

Template

specialization

arguments

arguments

<<specialization>>

Parameter

name

name

Parameter

type

type

type modifiers

type modifier

const

<<const>>

volatile

<volatile>>

attributes

<<attributes>>

varArgList

varArgList

default value

default

Constructor

name

name

Operation

<<constructor>>

access specifier

public

visibility

public

protected

protected

private

private

explicit

<<explicit>>

= delete

<<delete>>

inline

<<inline>>

= default

<<default>>

noexcept


<<noexcept>>

throw

exceptions

<<throw>>

specification

attributes

<<attributes>>

Template

parameter

name

name

Template

Parameter

template parameter pack

parameterPack

type

property @type

default

default

Template

specialization

arguments

arguments

<<specialization>>

Parameter

name

name

Parameter

type

type

type modifiers

type modifier

const

<<const>>

volatile

<volatile>>

attributes

<<attributes>>

varArgList

varArgList

default value

default

Destructor

name

name

Operation

<<destructor>>

access specifier

public

visibility

public

protected

protected

private

private

inline

<<inline>>

noexcept


<<noexcept>>

throw

exceptions

<<throw>>

specification

attributes

<<attributes>>

Operator

name

'operator' name

Operation

access specifier

public

visibility

public

protected

protected

private

private

static

static

virtual

<<virtual>>

= 0

<<purevirtual>>

const

<<const>>

inline

<<inline>>

= delete

<<delete>>

= default

<<default>>

override

<<overrride>>

final

<<final>>

volatile

<<volatile>>

constexpr

<<constexpr>>

noexcept


<<noexcept>>

throw

exceptions

<<throw>>

specification

attributes

<<attributes>>

Template

parameter

name

name

Template

Parameter

template parameter pack

parameterPack

type

property @type

default

default

Template

specialization

arguments

arguments

<<specialization>>

Parameter

name

name

Parameter

type

type

type modifiers

type modifier

const

<<const>>

volatile

<volatile>>

attributes

<<attributes>>

varArgList

varArgList

default value

default

 

C++ Typedef

C++

UModel

Typedef

name

name

Class

<<typedef>>

filename

code file name

associated projectfile / directory

ComponentRealization

type

@type property

attributes

<<attributes>>

 

C++ Type alias

C++

UModel

Type alias

name

name

Class

<<typealias>>

filename

code file name

associated projectfile/directory

ComponentRealization

type

@type property

attributes

<<attributes>>

Template

Parameter

name

name

Template

Parameter

template parameter pack

parameterPack

type

property @type

default

default

 

C++ Enum

C++

UModel

Enum

name

name

Enumeration

filename

code file name

associated projectfile/directory

ComponentRealization

base type

<<basetype>> value

attributes

<<attributes>>

Enumerator

name

name

Enumeration Literal

default value

default

attribute sections

<<attributes>>


© 2019 Altova GmbH