Class MoveConstructor
A C++ move constructor [N4140 12.8]. For example the function MyClass
in
the following code is a MoveConstructor
:
class MyClass {
public:
MyClass(MyClass &&from) {
...
}
};
As per the standard, a move constructor of class T
is a non-template
constructor whose first parameter is T&&
, const T&&
, volatile T&&
,
or const volatile T&&
, and either there are no other parameters, or
the rest of the parameters all have default values.
For template classes, it can generally not be determined until instantiation
whether a constructor is a move constructor. For such classes, MoveConstructor
over-approximates the set of move constructors; if an under-approximation is
desired instead, see the member predicate
mayNotBeMoveConstructorInInstantiation
.
Import path
import cpp
Direct supertypes
Indirect supertypes
Known direct subtypes
Predicates
getAPrimaryQlClass | Gets the name of a primary CodeQL class to which this element belongs. |
mayNotBeMoveConstructorInInstantiation | Holds if we cannot determine that this constructor will become a move constructor in all instantiations. Depending on template parameters of the enclosing class, this may become an ordinary constructor or a move constructor. |
Inherited predicates
accesses | Holds if this function accesses a function or variable or enumerator | from Function |
accesses | Holds if this function accesses a function or variable or enumerator | from Function |
calls | Holds if this function calls the function | from Function |
calls | Holds if this function calls the function | from Function |
canAccessClass | Holds if a base class | from AccessHolder |
canAccessMember | Holds if a non-static member | from AccessHolder |
couldAccessMember | Holds if a hypothetical non-static member of | from AccessHolder |
findRootCause | Gets the source of this element: either itself or a macro that expanded to this element. | from Element |
fromSource | Holds if this element may be from source. This predicate holds for all elements, except for those in the dummy file, whose name is the empty string. The dummy file contains declarations that are built directly into the compiler. | from Element |
getACallToThisFunction | Gets a call to this function. | from Function |
getADeclaration | Gets a child declaration of this function. | from Function |
getADeclarationEntry | Gets a declaration entry corresponding to this declaration. The relationship between | from Function |
getADeclarationLocation | Gets the location of a | from Function |
getAFalseSuccessor | Gets a node such that the control-flow edge | from ControlFlowNode |
getAFile | Gets a file where this element occurs. | from Declaration |
getALinkTarget | Gets a link target which compiled or referenced this function. | from Function |
getAParameter | Gets a parameter of this function. There is no result for the implicit | from Function |
getAPredecessor | Gets a direct predecessor of this control-flow node, if any. | from ControlFlowNode |
getASpecifier | Gets a specifier of this function. | from Function |
getASuccessor | Gets a direct successor of this control-flow node, if any. | from ControlFlowNode |
getATemplateArgument | Gets a template argument used to instantiate this declaration from a template. When called on a template, this will return a template parameter type for both typed and non-typed parameters. | from Declaration |
getATemplateArgumentKind | Gets a template argument used to instantiate this declaration from a template. When called on a template, this will return a non-typed template parameter value. | from Declaration |
getAThrownType | Gets a type that is specified to be thrown by the function. | from Function |
getATrueSuccessor | Gets a node such that the control-flow edge | from ControlFlowNode |
getAWrittenVariable | Gets a variable that is written-to in this function. | from Function |
getAnAccess | Gets an access of this function. | from Function |
getAnAttribute | Gets an attribute of this function. | from Function |
getAnExplicitDeclarationEntry | Gets a non-implicit function declaration entry. | from Function |
getAnInitializer | Gets an entry in the constructor’s initializer list, or a compiler-generated action which initializes a base class or member variable. | from Constructor |
getAnOverload | Gets a function that overloads this one. | from Function |
getAnOverriddenFunction | Gets a directly overridden function. | from MemberFunction |
getAnOverridingFunction | Gets a directly overriding function. | from MemberFunction |
getBasicBlock | Gets the | from ControlFlowNode |
getBlock | Gets the block that is the function body. | from Function |
getClassAndName | Gets the class of which this function, called | from Function |
getClassBodyDeclarationEntry | Gets the declaration entry for this member function that is within the class body. | from MemberFunction |
getControlFlowScope | Implements | from Function |
getDeclaringType | Gets the class where this member is declared, if it is a member. For templates, both the template itself and all instantiations of the template are considered to have the same declaring class. | from Declaration |
getDefinition | Gets the declaration entry corresponding to this declaration that is a definition, if any. | from Function |
getDefinitionLocation | Gets the location of the definition, if any. | from Function |
getDescription | Gets a description of this | from Declaration |
getEffectiveNumberOfParameters | Gets the number of parameters of this function, including any implicit | from MemberFunction |
getEnclosingAccessHolder | Gets the nearest enclosing AccessHolder. | from Function |
getEnclosingElement | Gets the closest | from Element |
getEnclosingStmt | Implements | from Function |
getEntryPoint | Gets the first node in this function’s control flow graph. | from Function |
getExplicitExpr | Gets the constant expression that determines whether the function is explicit. | from Function |
getFile | Gets the primary file where this element occurs. | from Element |
getInitializer | Gets an entry in the constructor’s initializer list, or a compiler-generated action which initializes a base class or member variable. The index specifies the order in which the initializer is to be evaluated. | from Constructor |
getLocation | Gets the preferred location of this declaration. (The location of the definition, if possible.) | from Function |
getMetrics | Gets the metric class. | from Function |
getName | Gets the name of this declaration. | from Function |
getNamespace | Gets the innermost namespace which contains this declaration. | from Declaration |
getNumberOfParameters | Gets the number of parameters of this function, not including any implicit | from Function |
getNumberOfTemplateArguments | Gets the number of template arguments for this declaration. | from Declaration |
getParameter | Gets the nth parameter of this function. There is no result for the implicit | from Function |
getParameterString | Gets a string representing the parameters of this function. | from Function |
getParentScope | Gets the parent scope of this | from Element |
getPrimaryQlClasses | Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs. | from ElementBase |
getQualifiedName | Gets the name of the declaration, fully qualified with its namespace and declaring type. | from Declaration |
getTemplateArgument | Gets the | from Declaration |
getTemplateArgumentKind | Gets the | from Declaration |
getThrownType | Gets the | from Function |
getType | Gets the return type of this function. | from Function |
getTypeOfThis | Gets the type of the | from MemberFunction |
getUnspecifiedType | Gets the return type of this function after specifiers have been deeply stripped and typedefs have been resolved. | from Function |
hasCLinkage | Holds if this function has C linkage, as specified by one of its declaration entries. For example: | from Function |
hasDeclaringType | Holds if this declaration is a member of a class/struct/union. | from Declaration |
hasDefinition | Holds if the declaration has a definition. | from Declaration |
hasEntryPoint | Holds if this function has an entry point. | from Function |
hasErrors | Holds if this function has extraction errors that create an | from Function |
hasExceptionSpecification | Holds if the function has an exception specification. | from Function |
hasGlobalName | Holds if this declaration has the given name in the global namespace. | from Declaration |
hasGlobalOrStdName | Holds if this declaration has the given name in the global namespace or the | from Declaration |
hasGlobalOrStdOrBslName | Holds if this declaration has the given name in the global namespace, the | from Declaration |
hasName | Holds if this declaration has the given name. | from Declaration |
hasQualifiedName | Holds if this declaration has a fully-qualified name with a name-space component of | from Declaration |
hasQualifiedName | Holds if this declaration has a fully-qualified name with a name-space component of | from Declaration |
hasSpecifier | Holds if this declaration has a specifier with the given name. | from Declaration |
hasTrailingReturnType | Holds if this function has a trailing return type. | from Function |
inMemberOrFriendOf | Holds if | from AccessHolder |
isAffectedByMacro | Holds if this element is affected in any way by a macro. All elements that are totally or partially generated by a macro are included, so this is a super-set of | from Element |
isCompilerGenerated | Holds if this function is generated by the compiler. | from Function |
isCondition | Holds if this node is the top-level expression of a conditional statement, meaning that | from ControlFlowNode |
isConsteval | Holds if this function is declared to be | from Function |
isConstexpr | Holds if this function is | from Function |
isConstructedFrom | Holds if this function is constructed from | from Function |
isDeclaredConstexpr | Holds if this function is declared to be | from Function |
isDeclaredVirtual | Holds if this function is declared with the | from Function |
isDefault | Holds if this constructor serves as a default constructor. | from Constructor |
isDefaulted | Holds if this function is explicitly defaulted with the | from Function |
isDeleted | Holds if this function is deleted. This may be because it was explicitly deleted with an | from Function |
isExplicit | Holds if this function is declared to be | from Function |
isFinal | Holds if this function is declared with the | from Function |
isFromTemplateInstantiation | Holds if this | from Element |
isFromUninstantiatedTemplate | Holds if this | from Element |
isInMacroExpansion | Holds if this element comes from a macro expansion. Only elements that are entirely generated by a macro are included - for elements that partially come from a macro, see | from Element |
isInline | Holds if this function is inline. | from Function |
isLValueRefQualified | Holds if this declaration has the lvalue ref-qualifier | from MemberFunction |
isMember | Holds if this declaration is a member of a class/struct/union. | from Declaration |
isMultiplyDefined | Holds if this function is defined in several files. This is illegal in C (though possible in some C++ compilers), and likely indicates that several functions that are not linked together have been compiled. An example would be a project with many ‘main’ functions. | from Function |
isNaked | Holds if this function is declared with | from Function |
isNoExcept | Holds if this function has a | from Function |
isNoThrow | Holds if this function has a | from Function |
isOverride | Holds if this function is declared with the | from Function |
isPrivate | Holds if this member is private. | from MemberFunction |
isProtected | Holds if this member is protected. | from MemberFunction |
isPrototyped | Holds if this function has a prototyped interface. | from Function |
isPublic | Holds if this member is public. | from MemberFunction |
isRValueRefQualified | Holds if this declaration has the rvalue ref-qualifier | from MemberFunction |
isRefQualified | Holds if this declaration has a ref-qualifier | from MemberFunction |
isSideEffectFree | Holds if this function is side-effect free (conservative approximation). | from Function |
isSpecialization | Holds if this Function is a Template specialization. | from Function |
isStatic | Holds if this declaration is static. | from Declaration |
isTopLevel | Holds if this declaration is a top-level declaration. | from Declaration |
isVarargs | Holds if this function is a varargs function. | from Function |
isVirtual | Holds if this function is virtual. | from Function |
mayHaveSideEffects | Holds if this function may have side-effects; if in doubt, we assume it may. | from Function |
overrides | Holds if this function overrides that function. | from MemberFunction |
toString | Gets a textual representation of this element. | from Declaration |