As far as I can tell, the term fully qualified isn't mentioned in the standard (e.g.), but I can recall "hearing" it many times online.
What do people mean when they say a name is fully qualified?
Does this count?
A::f()
or only this?
::A::f()
And, if it is standard, which wording have I not found?
A fully qualified type name consists of an assembly name specification, a namespace specification, and a type name. Type name specifications are used by methods such as Type. GetType, Module. GetType, ModuleBuilder.
The term fully qualified file name (or FQFN) means a file on a computer whose exact name is completely specified such that it is unambiguous and cannot be mistaken for any other file on that computer system.
On your Windows PC, follow these steps to find your FQDN: Launch the Control Panel by searching for "Control Panel" in the Start Menu, or by typing Win+R and typing "control.exe" in the Run menu. On the System Information screen, you will see both the hostname and FQDN of your machine.
"Fully-qualified path" is synonymous with "absolute path" "Fully-qualified" and "absolute path" mean the same thing - a path that is not relative to an implied or specified context.
An identifier that uses the scope resolution operator is a qualified name as per [expr.prim.id.qual]. Otherwise it is unqualified.
The standard doesn't define the meaning of fully qualified, but it does mention it in [library]/[requirements]/[organization]/[contents] which says (quote from standard draft)
Whenever a name x defined in the standard library is mentioned, the name x is assumed to be fully qualified as ::std::x, unless explicitly described otherwise. For example, if the Effects: element for library function F is described as calling library function G, the function ::std::G is meant.
Wikipedia defines Fully qualified name:
In computer programming, a fully qualified name is an unambiguous name that specifies which object, function, or variable a call refers to without regard to the context of the call
Only a name qualified starting from the global namespace is unambiguous without context. This is the common usage.
Indeed, it is not a standard term. It has no definition in the standard.
However, the phrase "fully qualified" appears exactly once, in [contents] (15.5.1.1 "Library contents" in the as-of-writing most current draft N4800) paragraph 3:
Whenever a name
x
defined in the standard library is mentioned, the namex
is assumed to be fully qualified as::std::x
, unless explicitly described otherwise.
So in this definition, only names starting with ::
are fully qualified.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With