2021-04-28 16:49:39 +02:00
It is implementation-defined behaviour whether the reference parameter is a temporary object or a reference to the parameter. If the implementation uses a local copy (temporary object), this will be destroyed when the function returns. Any attempt to use such an object after its destruction will lead to undefined behaviour.
2021-04-28 18:08:03 +02:00
2021-04-28 16:49:39 +02:00
== Noncompliant Code Example
2022-02-04 17:28:24 +01:00
[source,cpp]
2021-04-28 16:49:39 +02:00
----
int32_t * fn1 ( int32_t & x )
{
return &x ; // Noncompliant
}
const int32_t * fn3 ( const int32_t & x )
{
return &x ; // Noncompliant
}
int32_t & fn4 ( int32_t & x )
{
return x ; // Noncompliant
}
const int32_t & fn5 ( const int32_t & x )
{
return x ; // Noncompliant
}
----
2021-04-28 18:08:03 +02:00
2021-04-28 16:49:39 +02:00
== See
* MISRA {cpp}:2008, 7-5-3
2021-04-28 18:08:03 +02:00
2021-06-02 20:44:38 +02:00
2021-06-03 09:05:38 +02:00
ifdef::env-github,rspecator-view[]
2021-09-20 15:38:42 +02:00
'''
== Implementation Specification
(visible only on this page)
include::message.adoc[]
2021-06-08 15:52:13 +02:00
'''
2021-06-02 20:44:38 +02:00
== Comments And Links
(visible only on this page)
include::comments-and-links.adoc[]
2021-06-03 09:05:38 +02:00
endif::env-github,rspecator-view[]