![](/img/trans.png)
[英]Are value categories preserved inside a tuple (perfect forwarding through tuples)?
我編寫了以下代碼片段來測試我是否可以通過元組和std::invoke完美地轉發值。 然而,生成的程序集看起來有點奇怪。 演示 x86-46 gcc 12.2 -Wall -Os --std=c++20 摘自第 30 行: 如您所見,調用了std::string的復制構造函數。 它起源於哪里? ...
[英]Are value categories preserved inside a tuple (perfect forwarding through tuples)?
我編寫了以下代碼片段來測試我是否可以通過元組和std::invoke完美地轉發值。 然而,生成的程序集看起來有點奇怪。 演示 x86-46 gcc 12.2 -Wall -Os --std=c++20 摘自第 30 行: 如您所見,調用了std::string的復制構造函數。 它起源於哪里? ...
[英]How can I pass a member function pointer type to a template?
我正在嘗試使用嵌套的std::invoke委托方法調用。 示例代碼: 將成員函數的類型傳遞給Invoker模板的正確方法是什么? 編輯:示例代碼更正。 ...
[英]std::invoke with ref qualifiers
在下面使用帶有operator()的 ref 限定符時,我遇到了以下問題。 在這種情況下啟用左值 ref 重載的正確語法是什么?#include <functional> struct F { void operator()() & {} void opera ...
[英]Invoke a method for each alternative in a list of std::variant without macros
我有一組 Writer 類,每個類都有不同的實現。 我有一個提供相同界面的作者列表。 調用列表中的方法應該對列表中的每個元素調用相同的方法(復合設計模式)。 為了避免虛擬調度的開銷,編寫器存儲在 std::variant 中,列表遍歷變體向量並使用 std::visit 和 std::invoke ...
[英]Using std::invoke when a function is overloaded
我正在嘗試將std::invoke()與重載的 function 一起使用:#include <iostream> #include <functional> struct S { void foo(int) { } void foo(int, int) ...
[英]C++: does std::invoke need perfect forwarding?
片段 這里需要std::forward<Args>嗎? 或者寫就夠了 有什么區別? ...
[英]Can this member function selection code be written without std::invoke?
我正在嘗試 select 一個基於某些constexpr值的成員fn 。 然后我嘗試調用選定的 function,但我收到關於如何使用不正確語法調用成員fn的錯誤。 我試圖“恰當地”稱呼它,但失敗了。 最后我使用的是std::invoke ,但我想知道這是否可以在沒有std::invoke的情況下 ...