mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-17 00:50:58 +00:00
Remove rules against std::function from the programmer's manual
Clarify that llvm::function_ref is like StringRef for callables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213326 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c1ef24ce39
commit
5d83e5bdd5
@ -298,7 +298,9 @@ The ``function_ref``
|
||||
(`doxygen <http://llvm.org/doxygen/classllvm_1_1function_ref.html>`__) class
|
||||
template represents a reference to a callable object, templated over the type
|
||||
of the callable. This is a good choice for passing a callback to a function,
|
||||
if you don't need to hold onto the callback after the function returns.
|
||||
if you don't need to hold onto the callback after the function returns. In this
|
||||
way, ``function_ref`` is to ``std::function`` as ``StringRef`` is to
|
||||
``std::string``.
|
||||
|
||||
``function_ref<Ret(Param1, Param2, ...)>`` can be implicitly constructed from
|
||||
any callable object that can be called with arguments of type ``Param1``,
|
||||
@ -323,17 +325,11 @@ can be called using:
|
||||
return false;
|
||||
});
|
||||
|
||||
Note that a ``function_ref`` object contains pointers to external memory, so
|
||||
it is not generally safe to store an instance of the class (unless you know
|
||||
that the external storage will not be freed).
|
||||
``function_ref`` is small enough that it should always be passed by value.
|
||||
|
||||
``std::function``
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
You cannot use ``std::function`` within LLVM code, because it is not supported
|
||||
by all our target toolchains.
|
||||
|
||||
Note that a ``function_ref`` object contains pointers to external memory, so it
|
||||
is not generally safe to store an instance of the class (unless you know that
|
||||
the external storage will not be freed). If you need this ability, consider
|
||||
using ``std::function``. ``function_ref`` is small enough that it should always
|
||||
be passed by value.
|
||||
|
||||
.. _DEBUG:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user