![](/img/trans.png)
[英]C++ 11 conditional template alias to function
在 C++ 11 中,我想創建一個具有兩個專業化的模板別名,分別解析為不同的 function。 所以我可以調用例如Loc_snprintf<>()並且它解析為functionA() 。 顯然似乎不可能(編譯)。 是否有一些最終簡單的東西可以模仿它(也許使用 class 模板)? ...
[英]C++ 11 conditional template alias to function
在 C++ 11 中,我想創建一個具有兩個專業化的模板別名,分別解析為不同的 function。 所以我可以調用例如Loc_snprintf<>()並且它解析為functionA() 。 顯然似乎不可能(編譯)。 是否有一些最終簡單的東西可以模仿它(也許使用 class 模板)? ...
[英]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類型可能會有很 ...
[英]Template aliases conflicting types. g++ compiles successfully while clang fails
我遇到了一個非常奇怪的編譯器錯誤。 由於某些原因,發布的代碼可以使用g ++(7.3.0)正確編譯,而clang(7.0.0)失敗: 兩個編譯器選項均設置為-std = c ++ 14 根據cppreference.com: 類型別名聲明引入了一個名稱,該名稱可以用作 ...
[英]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的強大功能 。 參見例如以下片段: 別名模板作為模板模板參數傳遞給模板,並進一步用於檢測模板的其他參數,因為該參數是推導的上下文。 美女! 但是,僅當需要推導別名模板本身時,看起來編譯器就會變得瘋狂 ...
[英]Click not working using variable in testcomplete
在testcomplete中單擊“使用變量不起作用”,如下所示。 而沒有變量的直接點擊可以按以下方式正常工作。 我正在使用testcomplete 10和Java腳本 ...
[英]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_ ...
[英]passing a parameter pack over a legacy function signature using forward_as_tuple
在我的應用程序中,我想在舊式函數簽名上傳遞參數包,並更改值。 這是代碼,它以嘗試作為注釋來說明我的問題: 有沒有一種方法可以使參數包成為可聲明的左值? ...
[英]Template alias, Template specialization and Template Template parameters
我想通過使用模板別名和模板特化的組合來確定模板參數的基礎模板。 下面的代碼在gcc 4.8,6.2.1上編譯得很好,但在clang 3.5,3.8上卻沒有。 哪種行為符合標准? ...
[英]Alias template, partial specialization and the invalid parameter type void
考慮以下代碼: 正如預期的那樣,它運行良好,並且涉及S的行和涉及Alias的行都在Alias定義了相同的類型S<void(int)> 。 現在,請考慮以下更改: 我希望它可以編譯,原因與上述原因相似。 不用說,由於涉及Alias的行,它無法編譯,相反,我得到 ...
[英]How to switch to typedef from template aliasing?
我有一個模板類,它基本上實現注冊表設計模式。 值已通過鍵注冊,並存儲在某些容器中: 然后,我可以將其與如下序列容器一起使用: 我什至可以使用別名: 但是我無法弄清楚如何將它與typedef一起使用: 我基本上想要這樣的東西: 非常感謝你的幫助。 ...
[英]Template alias visibility in nested class
考慮以下: 編譯好了。 尼斯。 但現在在Z添加另一個參數: 好吧,也許有意義A是,在派生嵌套類B時,類A的模板別名Z的定義是可見的,但不在其主體內,因為Z的全局定義有兩個參數,所以觸發錯誤。 但是, 為什么在第一種情況下行為不同,當Z只是A的類型別名時? 最后,讓 ...