![](/img/trans.png)
[英]Raw int pointer vs vector::iterator<int>
我試圖了解原始指針和向量迭代器之間的區別。 然而,下面的程序讓我失望了。 模板函數是否優先於非模板函數? 預期:您好! 世界! 實際:你好! 你好! ...
[英]Raw int pointer vs vector::iterator<int>
我試圖了解原始指針和向量迭代器之間的區別。 然而,下面的程序讓我失望了。 模板函數是否優先於非模板函數? 預期:您好! 世界! 實際:你好! 你好! ...
[英](non)ambiguous static overload within templated class
我的類模板NodeMaker有 3 個名為create_node的靜態成員函數模板,它們通過使用 C++20 概念的參數來區分。 當從main()調用NodeMaker<>::create_node(x)時,一切都按我的預期工作,但是當從另一個成員函數調用create_node時,GCC ...
[英]MSVC not able to disambiguate between function templates when one of them contains a pack
最近我報告了一個涉及函數參數包的msvc 錯誤。 同樣,這里證明 msvc 實際上是符合標准的。 然后,當我將示例修改為如下所示時,我注意到修改后的代碼也無法在 msvc 中編譯,但可以在 clang 和 gcc 中編譯。 代碼如下: Demo鏈接 請注意,在上面的示例中,我們將C<T. ...
[英]What is the variadic function template overloading precedence rule?
我正在使用通用遞歸格式的可變參數 function 模板,每當我處理向量時,我都需要更改 function 的行為。 如果函數模板不是可變參數,則重載效果很好,但是對於可變參數 function 模板,解壓參數包時重載分辨率似乎會發生變化。 下面的一些代碼可以更好地解釋我的意思。 在complex ...
[英]Function template specialization in C++, no Instance of overloaded function
我正在學習 C++ 中的函數模板專業化,並負責編寫一個名為plus的模板函數,該函數返回它的兩個參數的總和,這些參數可能是不同類型的。 一種是按值接受,另一種是按指針接受。 作為一個額外的挑戰,我被要求重載這個函數,以便它連接兩個字符串。 問題是我在連接兩個字符串的函數的專業化重載上遇到錯誤。 ...
[英]How to deduce template argument for lambda, in function overload?
我應該如何修改我目前的函數簽名 為了被調用 Visual Studio 2019 提供 C2783 'bool isPrime(const TypeData &,TypeFunc1,TypeFunc2,const bool)': 無法推導出 'TypeFunc2' 的模板參數 ...
[英]Correct way to overload the multiplication operator in C++ (both directions)
我設法理解如何將重載運算符實現為成員函數。 這種方式認為對象(實例)總是被傳遞給操作符。 為了讓它工作,我在類之外定義了我的重載運算符。 它僅在我在頭文件 (.hpp) 中定義它時才有效。 如果我將函數添加到 .cpp 文件中,為什么編譯器會忽略它?。 代碼片段如下: 最后一個函數,如下所示, ...
[英]What makes the overload fail between these two function templates?
下面是一個非常簡短的例子。#include <utility> template<typename T, typename = void> struct A {}; template<typename T, typename U> void f(A<s ...
[英]Overload function template using a templated type
我有一個給定的 function 像這樣: 這個 function 有各種過載,其中一些是基於概念的。 類似於以下內容: 現在我想使用模板類型添加一個重載,類似於以下內容: 為此,我需要指定V類型。 但是我找不到允許在不破壞代碼的情況下指定V的語法。 函數調用如下: 這意味着,模板類型是明確提供的, ...
[英]Why compiler(g++) cannot find the first add function?
這里, void add(Key& key,Value& value) { add(root,new SBTNode<Key,Value>(key,value));} }; ,我想調用第一個添加function,但是,編譯器似乎認為唯一的候選 function 是vo ...
[英]C++ function template overload: empty braces vs explicit int
下面有一些非常基本的 C++ function 模板重載分辨率示例(從實際代碼中最小化) 這里我們有兩個案例。 在第一種情況下,編譯器應默認初始化某些東西(例如 S),在第二種情況下將 int 轉換為某些東西(例如 S) Godbolt 上的實時示例我相信在這兩種情況下,專業化都會贏得重載,因為 ...
[英]Overloading generic function on optional parameter in Swift
我正在嘗試編寫一個使用模板/泛型類型分派的庫,但我無法弄清楚 Swift 中的重載解析是如何工作的。 (有沒有比Swift 編程語言更多的技術參考?) 以下工作完全符合我的希望: 這段代碼也以同樣的方式工作: 但是當我編譯這個時: 我收到警告 果然,使用可選參數執行它會破壞堆棧。 我的第一個滑稽 ...
[英]C++ primer 5th ed. function template overloading
在C++ Primer一書中,有一個關於 function 模板重載的例子: 如果我們使用指針調用 debug_rep: 這兩個函數都會生成可行的實例化: debug_rep(const string* &) ,這是第一個版本的 debug_rep 的實例化,其中T綁定到string* ...