|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
参数转发函数实现 更多...
函数 | |
| template<typename T> | |
| constexpr T && | neforce::forward (remove_reference_t< T > &x) noexcept |
| 完美转发左值 | |
| template<typename T> | |
| constexpr T && | neforce::forward (remove_reference_t< T > &&x) noexcept |
| 完美转发右值 | |
| template<typename T> | |
| constexpr remove_reference_t< T > && | neforce::move (T &&x) noexcept |
| 无条件转换为右值引用 | |
| template<typename T> | |
| constexpr conditional_t<!is_nothrow_move_constructible< T >::value &&is_copy_constructible< T >::value, const T &, T && > | neforce::move_if_noexcept (T &x) noexcept |
| 在安全的情况下执行移动操作 | |
| template<typename T> | |
| constexpr T * | neforce::addressof (T &x) noexcept |
| 获取对象的地址 | |
| template<typename T> | |
| const T * | neforce::addressof (const T &&)=delete |
| 禁止获取const右值的地址 | |
参数转发函数实现
|
delete |
|
nodiscardconstexprnoexcept |
获取对象的地址
| T | 对象类型 |
| x | 对象引用 |
可避免重载的operator&干扰
在文件 type_traits.hpp 第 3084 行定义.
引用了 addressof().
被这些函数引用 addressof(), addressof(), neforce::allocated_ptr< Alloc >::allocated_ptr(), neforce::allocated_ptr< Alloc >::allocated_ptr(), atomic_exchange_any(), neforce::atomic_ref_base< T *, false, false >::atomic_ref_base(), neforce::atomic_ref_base< T, false, false >::atomic_ref_base(), atomic_store_any(), neforce::back_insert_iterator< Container >::back_insert_iterator(), neforce::atomic< T >::compare_exchange_strong(), neforce::atomic< T >::compare_exchange_strong(), neforce::atomic_base< T * >::compare_exchange_strong(), neforce::atomic_base< T * >::compare_exchange_strong(), neforce::atomic< T >::compare_exchange_weak(), neforce::atomic< T >::compare_exchange_weak(), neforce::atomic_base< T * >::compare_exchange_weak(), neforce::atomic_base< T * >::compare_exchange_weak(), neforce::optional< T & >::emplace(), neforce::atomic< T >::exchange(), neforce::atomic< T >::exchange(), neforce::atomic_base< T * >::fetch_add(), neforce::atomic_base< T * >::fetch_add(), neforce::atomic_base< T * >::fetch_sub(), neforce::atomic_base< T * >::fetch_sub(), neforce::front_insert_iterator< Container >::front_insert_iterator(), neforce::insert_iterator< Container >::insert_iterator(), neforce::atomic< T >::load(), neforce::atomic< T >::load(), neforce::basic_string< char >::operator=(), neforce::basic_string< char >::operator=(), neforce::basic_timer< steady_clock >::operator=(), neforce::bit_reference::operator=(), neforce::bit_reference::operator=(), neforce::bitmap::operator=(), neforce::bitmap::operator=(), neforce::cancellation_token::operator=(), neforce::color::operator=(), neforce::deque< T, Alloc, BufSize >::operator=(), neforce::deque< T, Alloc, BufSize >::operator=(), neforce::exception::operator=(), neforce::exception::operator=(), neforce::exception_ptr::operator=(), neforce::exception_ptr::operator=(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::operator=(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::operator=(), neforce::generator< T >::operator=(), neforce::hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::operator=(), neforce::hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::operator=(), neforce::http::http_content::operator=(), neforce::http::http_cookie_name::operator=(), neforce::http::http_method::operator=(), neforce::list< pair< Key, Value > >::operator=(), neforce::list< pair< Key, Value > >::operator=(), neforce::map< Key, T, Compare, Alloc >::operator=(), neforce::map< Key, T, Compare, Alloc >::operator=(), neforce::optional< T >::operator=(), neforce::optional< T >::operator=(), neforce::optional< T & >::operator=(), neforce::optional< T & >::operator=(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator=(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::operator=(), neforce::retire_list::operator=(), neforce::scope_connection::operator=(), neforce::scope_transaction< Connect >::operator=(), neforce::shared_lock< SharedMutex >::operator=(), neforce::shared_ptr< periodic_task_state >::operator=(), neforce::shared_ptr< periodic_task_state >::operator=(), neforce::sparse_map< Key, T, Compare, Alloc >::operator=(), neforce::sparse_map< Key, T, Compare, Alloc >::operator=(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::operator=(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::operator=(), neforce::task< T >::operator=(), neforce::trace_allocator< U >::operator=(), neforce::unique_lock< Mutex >::operator=(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::operator=(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::operator=(), neforce::vector< Value, Alloc >::operator=(), neforce::vector< Value, Alloc >::operator=(), neforce::virtual_thread_task< T >::operator=(), neforce::virtual_thread_task< void >::operator=(), neforce::weak_ptr< T >::operator=(), neforce::weak_ptr< T >::operator=(), neforce::optional< T & >::optional(), neforce::optional< T & >::optional(), neforce::pointer_traits< T * >::pointer_to(), neforce::reference_wrapper< T >::reference_wrapper(), neforce::atomic< T >::store(), neforce::atomic< T >::store(), neforce::basic_string< char >::swap(), neforce::bit_reference::swap(), neforce::bitmap::swap(), neforce::deque< T, Alloc, BufSize >::swap(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::swap(), neforce::hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::swap(), neforce::optional< T >::swap(), neforce::shared_ptr< periodic_task_state >::swap(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::swap(), neforce::vector< Value, Alloc >::swap() , 以及 neforce::weak_ptr< T >::swap().
|
nodiscardconstexprnoexcept |
完美转发右值
| T | 目标类型 |
| x | 要转发的右值 |
用于实现完美转发,保持值的类别
在文件 type_traits.hpp 第 3042 行定义.
引用了 forward() , 以及 neforce::integral_constant< bool, Value >< false >::value.
|
nodiscardconstexprnoexcept |
完美转发左值
| T | 目标类型 |
| x | 要转发的左值 |
用于实现完美转发,保持值的类别
在文件 type_traits.hpp 第 3028 行定义.
引用了 forward().
被这些函数引用 allocate_shared(), neforce::optional< T >::and_then(), neforce::optional< T >::and_then(), neforce::optional< T >::and_then(), neforce::optional< T >::and_then(), neforce::optional< T & >::and_then(), neforce::optional< T & >::and_then(), neforce::optional< T & >::and_then(), neforce::optional< T & >::and_then(), neforce::any::any(), neforce::any::any(), apply(), neforce::cancellation_slot::assign(), async(), async(), neforce::tcp_acceptor::async_accept(), neforce::tcp_socket::async_connect(), neforce::ssl_stream::async_handshake(), neforce::dns_client::async_query(), neforce::async_stream::async_read(), neforce::tcp_socket::async_receive(), neforce::udp_socket::async_receive_from(), neforce::tcp_socket::async_send(), neforce::udp_socket::async_send_to(), neforce::basic_timer< steady_clock >::async_wait(), neforce::async_stream::async_write(), neforce::virtual_thread_task< T >::promise_type::await_transform(), neforce::virtual_thread_task< void >::promise_type::await_transform(), bind(), bind_front(), neforce::binder< Func(BoundArgs...)>::binder(), neforce::binder_front< decay_t< Func >, decay_t< Args >... >::binder_front(), neforce::bindrer< Res, Func(BoundArgs...)>::bindrer(), neforce::once_flag::call_once, neforce::call_wrapper< Types >::call_wrapper(), neforce::compressed_pair< IfEmpty, T, Compressed >::compressed_pair(), neforce::compressed_pair< IfEmpty, T, Compressed >::compressed_pair(), neforce::compressed_pair< IfEmpty, T, false >::compressed_pair(), neforce::compressed_pair< IfEmpty, T, false >::compressed_pair(), concatenate(), neforce::allocator_traits< rebind_alloc< T > >::construct(), construct(), neforce::signal< T >::emit_executor(), neforce::any::emplace(), neforce::any::emplace(), neforce::deque< T, Alloc, BufSize >::emplace(), neforce::flat_unordered_map< Key, T, HashFcn, EqualKey, Alloc >::emplace(), neforce::flat_unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::emplace(), neforce::flat_unordered_multiset< Value, HashFcn, EqualKey, Alloc >::emplace(), neforce::flat_unordered_set< Value, HashFcn, EqualKey, Alloc >::emplace(), neforce::list< pair< Key, Value > >::emplace(), neforce::map< Key, T, Compare, Alloc >::emplace(), neforce::multimap< Key, T, Compare, Alloc >::emplace(), neforce::multiset< Key, Compare, Alloc >::emplace(), neforce::optional< T >::emplace(), neforce::optional< T >::emplace(), neforce::priority_queue< T, Sequence, Compare >::emplace(), neforce::queue< T, Sequence >::emplace(), neforce::set< Key, Compare, Alloc >::emplace(), neforce::sparse_map< Key, T, Compare, Alloc >::emplace(), neforce::sparse_multimap< Key, T, Compare, Alloc >::emplace(), neforce::sparse_multiset< Key, Compare, Alloc >::emplace(), neforce::sparse_set< Key, Compare, Alloc >::emplace(), neforce::stack< T, Sequence >::emplace(), neforce::unordered_map< string, any >::emplace(), neforce::unordered_multimap< Key, T, HashFcn, EqualKey, Alloc >::emplace(), neforce::unordered_multiset< Value, HashFcn, EqualKey, Alloc >::emplace(), neforce::unordered_set< Value, HashFcn, EqualKey, Alloc >::emplace(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::emplace(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::emplace(), neforce::vector< Value, Alloc >::emplace(), neforce::deque< T, Alloc, BufSize >::emplace_back(), neforce::list< pair< Key, Value > >::emplace_back(), neforce::vector< Value, Alloc >::emplace_back(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::emplace_equal(), neforce::hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::emplace_equal(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::emplace_equal(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::emplace_equal(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::emplace_equal_hint(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::emplace_equal_hint(), neforce::deque< T, Alloc, BufSize >::emplace_front(), neforce::list< pair< Key, Value > >::emplace_front(), neforce::map< Key, T, Compare, Alloc >::emplace_hint(), neforce::multimap< Key, T, Compare, Alloc >::emplace_hint(), neforce::multiset< Key, Compare, Alloc >::emplace_hint(), neforce::set< Key, Compare, Alloc >::emplace_hint(), neforce::sparse_map< Key, T, Compare, Alloc >::emplace_hint(), neforce::sparse_multimap< Key, T, Compare, Alloc >::emplace_hint(), neforce::sparse_multiset< Key, Compare, Alloc >::emplace_hint(), neforce::sparse_set< Key, Compare, Alloc >::emplace_hint(), neforce::flat_hashtable< pair< Key, T >, Key, HashFcn, select1st< pair< Key, T > >, EqualKey, Alloc >::emplace_unique(), neforce::hashtable< pair< const Key, T >, Key, HashFcn, select1st< pair< const Key, T > >, EqualKey, Alloc >::emplace_unique(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::emplace_unique(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::emplace_unique(), neforce::rb_tree< Key, pair< const Key, T >, select1st< pair< const Key, T > >, Compare, Alloc >::emplace_unique_hint(), neforce::sparse_vector< Key, pair< Key, T >, select1st< pair< Key, T > >, Compare, Alloc >::emplace_unique_hint(), eprint(), neforce::sys_console::eprint(), eprintf(), neforce::sys_console::eprintf(), eprintfln(), neforce::sys_console::eprintfln(), eprintln(), neforce::sys_console::eprintln(), neforce::pair< Key, T >::explicit(), neforce::pair< Key, T >::explicit(), neforce::tuple< This, Rest... >::explicit(), neforce::generator< T >::fold(), neforce::generator< T >::for_each(), format(), format(), format(), forward(), forward(), forward_as_tuple(), neforce::function< Res(Args...)>::function(), get(), get(), get_current_task_group(), neforce::unordered_map< string, any >::insert(), neforce::unordered_set< Value, HashFcn, EqualKey, Alloc >::insert(), invoke(), invoke_r(), neforce::lazy_thread::lazy_thread(), neforce::list_node< value_type >::list_node(), make_any(), neforce::exception_ptr::make_exception_ptr, make_from_tuple(), make_optional(), make_optional(), make_pair(), neforce::packaged_task< Res(Args...)>::make_ready_at_thread_exit(), make_shared(), make_tuple(), make_unique(), neforce::binder< Func(BoundArgs...)>::operator()(), neforce::binder< Func(BoundArgs...)>::operator()(), neforce::binder_front< decay_t< Func >, decay_t< Args >... >::operator()(), neforce::binder_front< decay_t< Func >, decay_t< Args >... >::operator()(), neforce::binder_front< decay_t< Func >, decay_t< Args >... >::operator()(), neforce::binder_front< decay_t< Func >, decay_t< Args >... >::operator()(), neforce::bindrer< Res, Func(BoundArgs...)>::operator()(), neforce::bindrer< Res, Func(BoundArgs...)>::operator()(), neforce::function< Res(Args...)>::operator()(), neforce::packaged_task< Res(Args...)>::operator()(), neforce::reference_wrapper< T >::operator()(), neforce::signal< T >::operator()(), neforce::any::operator=(), neforce::function< Res(Args...)>::operator=(), neforce::optional< T >::operator=(), neforce::pair< Key, T >::operator=(), neforce::pair< Key, T >::operator=(), neforce::tuple< This, Rest... >::operator=(), neforce::tuple< This, Rest... >::operator=(), neforce::tuple< This, Rest... >::operator=(), neforce::unique_ptr< T[], Deleter >::operator=(), neforce::unique_ptr<::X509, x509_deleter >::operator=(), neforce::optional< T >::optional(), neforce::optional< T >::optional(), neforce::optional< T >::optional(), neforce::optional< T >::or_else(), neforce::optional< T >::or_else(), neforce::optional< T & >::or_else(), neforce::optional< T & >::or_else(), neforce::packaged_task< Res(Args...)>::packaged_task(), print(), neforce::sys_console::print(), printc(), neforce::sys_console::printc(), printcf(), neforce::sys_console::printcf(), printcfln(), neforce::sys_console::printcfln(), printcln(), neforce::sys_console::printcln(), printf(), neforce::sys_console::printf(), printfln(), neforce::sys_console::printfln(), println(), neforce::sys_console::println(), neforce::list< pair< Key, Value > >::push_back(), neforce::list< pair< Key, Value > >::push_front(), neforce::scope_exit< Func >::scope_exit(), neforce::scope_fail< Func >::scope_fail(), neforce::scope_success< Func >::scope_success(), neforce::scope_thread::scope_thread(), neforce::reflect::meta_property::set(), neforce::promise< Res >::set_value(), neforce::promise< Res >::set_value_at_thread_exit(), neforce::shared_ptr< periodic_task_state >::shared_ptr(), neforce::thread::start(), neforce::virtual_thread::start(), neforce::stop_callback< Callback >::stop_callback(), neforce::stop_callback< Callback >::stop_callback(), neforce::thread_pool::submit_after(), neforce::thread_pool::submit_every(), neforce::thread_pool::submit_task(), neforce::thread::thread(), neforce::optional< T >::transform(), neforce::optional< T >::transform(), neforce::optional< T >::transform(), neforce::optional< T >::transform(), neforce::optional< T & >::transform(), neforce::optional< T & >::transform(), neforce::optional< T & >::transform(), neforce::optional< T & >::transform(), neforce::tuple< This, Rest... >::tuple(), neforce::tuple< This, Rest... >::tuple(), tuple_cat(), neforce::unique_ptr< T[], Deleter >::unique_ptr(), neforce::unique_ptr<::X509, x509_deleter >::unique_ptr(), neforce::unique_ptr<::X509, x509_deleter >::unique_ptr(), neforce::optional< T & >::value_or(), neforce::optional< T & >::value_or(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::variant(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::variant(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::variant(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::variant(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::visit(), neforce::variant< none_t, ::sockaddr_in, ::sockaddr_in6 >::visit() , 以及 neforce::tui::application::with_component().
|
nodiscardconstexprnoexcept |
|
nodiscardconstexprnoexcept |
在安全的情况下执行移动操作
| T | 参数类型 |
| x | 要移动的值 |
如果类型不可无异常移动构造但可复制构造,则返回const引用以避免潜在异常
在文件 type_traits.hpp 第 3071 行定义.
引用了 move() , 以及 move_if_noexcept().
被这些函数引用 move_if_noexcept().