Back to Aurora Vision Library website

You are here: Start » Function Reference » All Functions » Conditional Processing » MergeBranches

MergeBranches


This is Filter Equivalent. This function may be present in generated code, but should not be used in hand-written code.

Header: STD.h
Namespace: avl
Module: FoundationLite

Chooses the first non-Nil object, or reports an error if there is no such object.

Syntax

void avl::MergeBranches
(
	const typename atl::ToConditionalType<const Type&>::Type& inConditionalObject1,
	const typename atl::ToConditionalType<const Type&>::Type& inConditionalObject2,
	const typename atl::ToConditionalType<const Type&>::Type& inConditionalObject3,
	const typename atl::ToConditionalType<const Type&>::Type& inConditionalObject4,
	const typename atl::ToConditionalType<const Type&>::Type& inConditionalObject5,
	const typename atl::ToConditionalType<const Type&>::Type& inConditionalObject6,
	const typename atl::ToConditionalType<const Type&>::Type& inConditionalObject7,
	const typename atl::ToConditionalType<const Type&>::Type& inConditionalObject8,
	Type& outObject
)

Parameters

Name Type Default Description
Input value inConditionalObject1 const typename ToConditionalType<const Type&>::Type& First conditional input object
Input value inConditionalObject2 const typename ToConditionalType<const Type&>::Type& Second conditional input object
Input value inConditionalObject3 const typename ToConditionalType<const Type&>::Type& Third conditional input object
Input value inConditionalObject4 const typename ToConditionalType<const Type&>::Type& Fourth conditional input object
Input value inConditionalObject5 const typename ToConditionalType<const Type&>::Type& Fifth conditional input object
Input value inConditionalObject6 const typename ToConditionalType<const Type&>::Type& Sixth conditional input object
Input value inConditionalObject7 const typename ToConditionalType<const Type&>::Type& Seventh conditional input object
Input value inConditionalObject8 const typename ToConditionalType<const Type&>::Type& Eighth conditional input object
Output value outObject Type& First not-Nil input object

Description

The operation collects a number of conditional objects and passes the existing input values onto the outObject output. The filter assumes that at least one of the input values exists; otherwise an error with appropriate description occurs.

The operation is similar to the MergeConditionals filter, yet it computes the proper (non-conditional) object.

Hints

  • Also consider the coalescing operator (??) in Formula Blocks.
  • This filter creates a full copy of one of the input objects. Thus, if you need the highest possible speed, use this filter only with primitive types. An alternative is to use Variant Step macrofilters which are fast and elegant.

Examples

inConditionalObject1 = Nil
inConditionalObject2 = Nil
inConditionalObject3 = "Mike"
inConditionalObject4 = "Alice"
inConditionalObject5 = Nil
inConditionalObject6 = "Joanne"
inConditionalObject7 = Nil
inConditionalObject8 = Nil
outObject = "Mike"
inConditionalObject1 = Nil
inConditionalObject2 = Nil
inConditionalObject3 = Nil
inConditionalObject4 = Nil
inConditionalObject5 = Nil
inConditionalObject6 = Nil
inConditionalObject7 = Nil
inConditionalObject8 = Nil
Error occurs.

Errors

List of possible exceptions:

Error type Description
DomainError All of the conditional objects on input are Nil in MergeBranches.

See Also

  • MergeIntoArray – Creates an array from all the non-Nil input elements.