Запитання з тегом «templates»

Тег шаблонів використовується в декількох контекстах: загальне програмування (особливо C ++) та генерація даних / документів за допомогою двигунів шаблонів. Під час використання цього тегу для впровадження важких питань - позначте мову коду, на якій написано реалізацію.

1
Передача покажчика функції з масиву функціональних покажчиків як аргумент шаблону
Я хотів би передати покажчик функції з масиву вказівників функції як аргумент шаблону. Мій код, здається, компілюється за допомогою MSVC, хоча Intellisense скаржиться, що щось не так. І gcc, і clang не можуть зібрати код. Розглянемо наступний приклад: static void test() {} using FunctionPointer = void(*)(); static constexpr FunctionPointer functions[] …
9 c++  templates  c++14 

1
невідповідність кланг / гкц у спеціалізації класу
Я зіткнувся з цим питанням, намагаючись спеціалізуватися tuple_size/ tuple_elementдля спеціального класу на C ++ 17 для структурованого прив’язки. Нижче код компілюється в GCC, але не в clang (обидві версії магістралі, див. Посилання нижче). #include <type_traits> template<typename T, typename... Ts> using sfinae_t = T; template<typename T, bool... Bs> using sfinae_v_t = …

5
Як повернути правильний тип даних у шаблони?
#include <iostream> using namespace std; template <class X, class Y> Y big(X a, Y b) { if (a > b) return (a); else return (b); } int main() { cout << big(32.8, 9); } Тут я використовую шаблони в CPP, тому коли я викликаю функцію в bigобхід аргументів doubleі intвведення, …

1
Спроба зрозуміти шаблони та пошук імен
Я намагаюся зрозуміти наступні фрагменти коду Фрагмент №1 template <typename T> struct A { static constexpr int VB = T::VD; }; struct B : A<B> { }; Ні gcc9, ні clang9 тут не створюють помилок. З. Чому цей код складається? Хіба ми не миттєві A<B>при спадкуванні від B? Немає VD …


2
Чому C ++ не може вивести T під час виклику до Foo <T> :: Foo (T&&)?
З огляду на таку структуру шаблону: template&lt;typename T&gt; struct Foo { Foo(T&amp;&amp;) {} }; Цей компілюється і Tвважається таким int: auto f = Foo(2); Але це не складається: https://godbolt.org/z/hAA9TE int x = 2; auto f = Foo(x); /* &lt;source&gt;:12:15: error: no viable constructor or deduction guide for deduction of template …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.