# 参考参数
## 底层设计
系统内部使用C++的引用功能(`T&`)处理 参考 这一特性
当无法直接使用`T&`时(如 可空 参数),使用`std::reference_wrapper`包装引用
## 临时引用
如果参数要求 参考,但调用者提供的数据是临时存在的,无法获取 左值引用,则EplOnCpp会涉法生成一个临时引用用于调用
这一功能是通过创建中间对象,并利用C++的规范(临时对象将在整个语句结束后被销毁)实现的
>[info] All temporary objects are destroyed as the last step in evaluating the full-expression that (lexically) contains the point where they were created, and if multiple temporary objects were created, they are destroyed in the order opposite to the order of creation. This is true even if that evaluation ends in throwing an exception.
>(from [https://en.cppreference.com/w/cpp/language/lifetime](https://en.cppreference.com/w/cpp/language/lifetime))
这一功能的具体实现方法,请参考`BYREF` / `e::system::forceRef` / `e::system::temp_reference`