cost 123 ms
C++ 11 條件模板別名為 function

[英]C++ 11 conditional template alias to function

在 C++ 11 中,我想創建一個具有兩個專業化的模板別名,分別解析為不同的 function。 所以我可以調用例如Loc_snprintf<>()並且它解析為functionA() 。 顯然似乎不可能(編譯)。 是否有一些最終簡單的東西可以模仿它(也許使用 class 模板)? ...

為什么 GCC 編譯器不能以別名模板形式從 std::array 推導出模板參數之一

[英]Why can't GCC compiler deduce one of the template parameter from std::array in alias template form

在 C++20 中,如果應用別名模板,則可以具有隱式推導指南。 然后,我構建了一個簡單的模板別名,它是ints :template <std::size_t N> using ints = std::array<int, N>; 但:ints{1, 2, 3, 4} 不起 ...

如何編寫聚合模板別名的推導指南?

[英]How to write deduction guidelines for aliases of aggregate templates?

使用 C++20,可以為別名模板生成推導准則(請參閱https://en.cppreference.com/w/cpp/language/class_template_argument_deduction 上的“別名模板推導”部分)。 然而,我無法讓它們使用聚合初始化語法。 在這種情況下,似乎沒有生 ...

模板模板參數和模板別名:編譯器錯誤?

[英]Template template parameter and template alias: compiler bug?

我對以下代表性示例代碼有疑問: 這段代碼用 icc-19.0.0 編譯得很好(並且似乎用 msvc-19.24 編譯),但不能用 gcc-10.1、clang-10.0.0 和 icc-18.0.0 編譯。 使用 gcc-10.1,錯誤消息是: 上下文:我有一個模板 class Z ,它有一個模板 ...

為什么不能在函數中使用模板別名作為參數並自動推導?

[英]Why is it not possible to use a template alias in function as parameter and to be automatically deduced?

我試圖通過使用模板別名而不是基礎類型來簡化模板函數: 但是調用者需要指定模板類型,因為編譯器無法為參數推導出 T: 如果函數參數類型更改為std::basic_string<T, Traits, Allocator>而不是String調用者可以簡單地調用make_vector_f ...

如何模擬模板別名的推導指南?

[英]How to emulate deduction guides for template aliases?

考慮以下: 我們可以為my_array提供推導指南,例如 現在,假設my_array<T, 2>有一些非常特殊的含義(但只是含義,接口和實現保持不變),因此我們想給它一個更合適的名稱: 事實證明,演繹指南根本不適用於模板別名,即這會產生編譯錯誤: 我們仍然可以說spec ...

如何為模板類型創建別名?

[英]How to create alias for template type?

我有一些模板類,其聲明如下所示: 我使用它們在下面的上下文中(每foo*被實例化與A和B和C該bar用實例化): 為了簡單和清晰的原因,我希望能夠在bar省略A , B和C參數,並寫下: 我知道我可以為所有foo類型使用別名模板,如下所示: 但foo類型可能會有很 ...

模板別名沖突的類型。 g ++編譯成功而clang失敗

[英]Template aliases conflicting types. g++ compiles successfully while clang fails

我遇到了一個非常奇怪的編譯器錯誤。 由於某些原因,發布的代碼可以使用g ++(7.3.0)正確編譯,而clang(7.0.0)失敗: 兩個編譯器選項均設置為-std = c ++ 14 根據cppreference.com: 類型別名聲明引入了一個名稱,該名稱可以用作 ...

別名模板的專業化最佳替代方案,無需C ++ 11中的開銷

[英]Specialization of alias template best alternative without overhead in C++11

我知道不可能專門化別名模板。 事實是我經常發現以下反復出現的模式: 有時我必須編寫許多特化,而BaseStruct可以有其他模板參數或者可能有一個長名稱,所以理想的是使用別名然后專門化它。 你們在這種情況下做了什么? 我寧願不使用宏或其他引入開銷的方法。 PS我正在使 ...

具有不同參數的函數的模板別名

[英]template alias for function with varying number of arguments

我有一個類模板Foo,它有幾個成員,其中一個是Bar類型的功能欄: 我希望Bar<2>是函數double (* )(double, double) (或者可能是std::function<double(double, double)> )的模板別名。 同樣,我希 ...

為什么模板別名特化取決於引用它的上下文?

[英]Why a template alias specialization depends on the context in which it is referred?

考慮這個示例代碼: V<int>::pt是pt_type<V<int>>的別名。 然而,它被定義的事實取決於它被引用的上下文。 在C++ 標准中哪里解釋了模板參數對模板參數的替換是在引用別名特化的上下文中執行的? ...

有沒有一種方法可以將別名模板推導為模板模板參數,同時仍保留其推論上下文的屬性

[英]Is there a way to deduce alias templates to template template parameter while still preserving its property of being deduced context

一段時間后,我再次發現了template template-parameters的強大功能 。 參見例如以下片段: 別名模板作為模板模板參數傳遞給模板,並進一步用於檢測模板的其他參數,因為該參數是推導的上下文。 美女! 但是,僅當需要推導別名模板本身時,看起來編譯器就會變得瘋狂 ...

gcc和clang是否無法正確推斷模板別名類型?

[英]Are gcc and clang not properly inferring template alias types?

我有以下簡單示例: 在此示例中,我們使用模板別名,以具有正確數量的模板參數來調用函數C()。 當然,這是從導致此問題的實際情況中提取的,因此解決方法在這里不是解決方案(它們也不是我在尋找的東西)。 gcc給出: gcc是否根據標准輸出了正確的輸出? 在我看來,在這種情況 ...

為什么別名模板會給出沖突的聲明?

[英]Why does alias template give a conflicting declaration?

一些C ++ 11代碼從Clang到g ++的移植 與任何g ++版本相比,Clang(從SVN主干版本3.1版)提供的行為有所不同。 對於后者我得到的錯誤, 這樣的 如果我使用完整的typename S<T>::value_type而不是模板別名value_ ...

別名模板,部分專業化和無效的參數類型void

[英]Alias template, partial specialization and the invalid parameter type void

考慮以下代碼: 正如預期的那樣,它運行良好,並且涉及S的行和涉及Alias的行都在Alias定義了相同的類型S<void(int)> 。 現在,請考慮以下更改: 我希望它可以編譯,原因與上述原因相似。 不用說,由於涉及Alias的行,它無法編譯,相反,我得到 ...

如何從模板別名切換到typedef?

[英]How to switch to typedef from template aliasing?

我有一個模板類,它基本上實現注冊表設計模式。 值已通過鍵注冊,並存儲在某些容器中: 然后,我可以將其與如下序列容器一起使用: 我什至可以使用別名: 但是我無法弄清楚如何將它與typedef一起使用: 我基本上想要這樣的東西: 非常感謝你的幫助。 ...

嵌套類中的模板別名可見性

[英]Template alias visibility in nested class

考慮以下: 編譯好了。 尼斯。 但現在在Z添加另一個參數: 好吧,也許有意義A是,在派生嵌套類B時,類A的模板別名Z的定義是可見的,但不在其主體內,因為Z的全局定義有兩個參數,所以觸發錯誤。 但是, 為什么在第一種情況下行為不同,當Z只是A的類型別名時? 最后,讓 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM