![](/img/trans.png)
[英]How to use template function for implicit conversion
非常簡化的示例(不要介意 class A和操作員在做什么,這只是示例): 這行得通。 但是,如果我用模板替換兩個operator== (具有相同的主體): ,其編譯產生錯誤: 可以在這里使用模板嗎? 能不能用C++17自定義模板推導指南? 還是別的什么? ...
[英]How to use template function for implicit conversion
非常簡化的示例(不要介意 class A和操作員在做什么,這只是示例): 這行得通。 但是,如果我用模板替換兩個operator== (具有相同的主體): ,其編譯產生錯誤: 可以在這里使用模板嗎? 能不能用C++17自定義模板推導指南? 還是別的什么? ...
[英]Misunderstanding variadic templates and template type deduction
我正在使用類似於此示例的代碼使用 C++17 進行編譯: } 我發現當我將Args...應用於ostream_type和ostreambuf_iterator_type的模板參數列表時,模板類型推導失敗,但如果我從ostream_type分配char_type和traits_type就可以了。 為 ...
[英]Additional type in template deduction guide
此片段演示如何使用推導指南來允許source_location::current與參數包一起使用(請參閱https://stackoverflow.com/a/57548488/1421332 ): 這是這樣使用的: 現在我想通過一個額外的類型 T 來擴展 struct Test ,它應該明確指定。 ...
[英]Deduce parameter pack from default argument
編譯器是否可以從函數的默認參數中推斷出參數包? 特別是,我有以下代碼: template <int ... Is> struct seq {}; template <int ... Is> struct make_seq; template <int head, int ...
[英]Is 'deep' template argument deduction posible?
關鍵是,我有模板 function,我想用它作為回調: 它從 class 成員 function 調用,如下所示: 哪一個按其順序從 main 調用為: gcc 給了我這樣一個 output: 以下是完整版代碼: 為什么它不起作用? ...
[英]How to allow a function to take in specified types?
所以我希望我的 function 接受模板化參數,如下所示: 我只希望foo接受我指定的所有這些類型。 假設我有類似Image<cam1> , Image<cam2> , Other<cam1> --> 如果我只希望Image<cam1>和Im ...
[英]c++ template parameter compiler can not deduce
這里是 function 注冊。 以及要注冊的特定處理程序: 現在我想將處理程序應用於注冊 Function,編譯器抱怨 而具體寫出類型是可以的: 但后者有丑陋的API。 我怎樣才能在工作中獲得第一名? ...
[英]deduction guides for matrix
我正在尋找初始化矩陣的演繹指南。 我已經嘗試使用pack in pack和sizeof... , initializer_list<initializer_list<T>> ,構造數組的自定義類,但沒有任何工作...... 所以,我正在尋找初始化 喜歡 ...
[英]Variadic template function to create string
我是可變參數模板功能的新手。 我編寫了一個簡單的類StringStream ,該類具有可變的模板函數,該函數從可變模板參數-字符串,整數等創建std::string 。 我現在想做的是在StringStream使用std::string成員而不是std::stringstream並從S ...
[英]Template default argument loses its reference type
考慮 在這兩種情況下,我都希望輸出為1。 但在第一種情況下,它是0:與默認的class ARG_T = T而不是class ARG_T = T& 。 我錯過了什么? ...
[英]Default argument for a functor in a templated parameter
我想在我的函數中為一個functor參數設置一個默認的lambda。 我知道可以像這樣使用struct和operator() : 但是我想知道是否有一種現代的方式,考慮到c ++ 14/17/20標准的變化,使這項工作? 我不確定將用作Functor的默認類型,或者是否存在 ...
[英]g++ and clang++ different behaviour deducing variadic template `auto` values
另一個“g ++和clang ++之間誰是正確的?” 這次我確信這是一個g ++錯誤,但我要求標准專家確認。 給出以下代碼 現場演示 clang ++(8.0.0,通過示例)編譯和鏈接沒有問題g ++(9.2.0,通過示例)給出以下錯誤編譯第二個foo() (但不是第一 ...
[英]Non-type template parameter pack for class data member pointer can't compile with gcc
我嘗試用c ++ 17 auto 非類型模板參數包編寫代碼用於類數據成員指針,但是下面的代碼clang將編譯而gcc不會, 你可以看到godbolt的錯誤信息 ,有人可以告訴我哪一個我應該相信,因為我無法弄清楚為什么gcc拒絕這一點。 謝謝你的幫助。 我知道如果將<auto ...
[英]Get function arguments type as tuple
問題 給定任何函數(或可調用)類型Function ,如何將其所有參數類型作為元組類型? 例如,我需要一個特征function_traits<Function>::arguments ,其中: 我的想法 第一 我需要獲得參數的大小,幸運的是boo ...
[英]Deducing template parameter types for each type in parameter pack
假設我有一個類型 我想制作一個將接受Pass對象列表的類,每個對象具有任意的T和U並設置3 std::tuple 。 像這樣: 然后創建一個實例: 可能嗎? ...
[英]How to match lambda to template parameter without specifying template params
我正在編寫消息接收庫,並希望編寫一個簡單的lambda以便在給定端點上接收到消息時調用。 當我嘗試一個簡單的lambda時,它與std::function模板不匹配,因為lambda不是確切的類型,這很有意義。 所需的語法給了我 對於我來說,是否需要額外的管道或使管道正常工 ...
[英]C++ detection idiom failure with inheritance
以下代碼無法編譯。 由於某種原因,從HasFoo繼承會導致IsWrapper失敗。 它與friend函數foo()因為從其他類繼承似乎可以正常工作。 我不明白為什么從HasFoo繼承會導致檢測慣用法失敗。 將WithFoo檢測為Wrapper程序的正確方法是什么? https: ...
[英]std::function with templated arguments
我想編寫一個模板化函數,將一些函數應用於來自兩個向量的成對元素。 結果應該是結果的新載體。 我希望這是一個模板化函數,以便它可用於不同類型。 我之前嘗試過定義。 但是,當我嘗試將其應用於某些特定功能時,出現編譯錯誤。 這里的類型推導有什么問題? ...
[英]Question about trailing return type in C++17
我有以下編譯好的代碼: template <typename T> struct A {T t;}; template <typename T> // 1 A(T) -> A<T>; // function template declarati ...
[英]g++ and clang++ different behaviour when `std::make_index_sequence` and `std::index_sequence` are used for a template parameter default type
另一個“誰在g ++和clang ++之間合適?” C ++標准專家的問題。 給出以下代碼 我看到g ++編譯在clang ++給出以下錯誤的地方 像往常一樣,問題是:誰是對的? g ++還是clang ++? -編輯-正如HolyBlackCat指出的(謝謝!) ...