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

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


2
Як реалізується std :: is_function?
Як здійснюється наступна реалізація std::is_function? template<class T> struct is_function : std::integral_constant< bool, !std::is_const<const T>::value && !std::is_reference<T>::value > {}; (із довідки CPP ) Мені здається, intфункція під цим визначенням була б функцією. Що я пропускаю?
82 c++  templates  std  sfinae 

5
Чи швидші літерали шаблонів ES6, ніж конкатенація рядків?
Чи працює генерація HTML-коду помітно швидше в сучасних браузерах, коли використовується конкатенація рядків або літеральні шаблони в ES6? Наприклад: Конкатенація рядків "<body>"+ "<article>"+ "<time datetime='" + date.toISOString() +"'>"+ date +"</time>"+ "</article>"+ "</body>" Шаблон буквальний `<body> <article> <time datetime='${ date.toISOString() }'>${ date }</time> </article> </body>`

6
Дублікат коду за допомогою c ++ 11
Зараз я працюю над проектом, і у мене є наступне питання. У мене є метод C ++, над яким я хочу працювати двома різними способами: void MyFunction() { foo(); bar(); foobar(); } void MyFunctionWithABonus() { foo(); bar(); doBonusStuff(); foobar(); } І я хотів би не дублювати мій код, оскільки фактична …
80 c++  c++11  templates 


4
Шаблон класу з шаблоном класний друг, що насправді тут відбувається?
Скажімо, я створюю клас для двійкового дерева, BTі у мене є клас, який описує елемент дерева BE, щось на зразок template<class T> class BE { T *data; BE *l, *r; public: ... template<class U> friend class BT; }; template<class T> class BT { BE<T> *root; public: ... private: ... }; …
80 c++  class  templates 

1
Вкладені шаблони із залежним обсягом
Що таке залежний обсяг і яке значення typename у контексті наступної помилки? $ make g++ -std=gnu++0x main.cpp main.cpp:18:10: error: need 'typename' before 'ptrModel<std::vector<Data> >::Type' because 'ptrModel<std::vector<Data> >' is a dependent scope make: *** [all] Error 1 /* * main.cpp */ #include <vector> #include <memory> template<typename T> struct ptrModel { typedef …
79 c++  templates  scope  nested 

6
Розширення варіативного пакета шаблонів
Я намагаюся вивчити різноманітні шаблони та функції. Я не можу зрозуміти, чому цей код не компілюється: template<typename T> static void bar(T t) {} template<typename... Args> static void foo2(Args... args) { (bar(args)...); } int main() { foo2(1, 2, 3, "3"); return 0; } Коли я компілюю, це не вдається з помилкою: …

10
C ++ Отримати ім'я типу в шаблоні
Я пишу кілька класів шаблонів для синтаксичного аналізу деяких текстових файлів даних, і, як такий, переважно більшість помилок синтаксичного аналізу будуть пов'язані з помилками у файлі даних, які здебільшого не написані програмістами, і тому вони потребують гарне повідомлення про те, чому програму не вдалося завантажити, наприклад щось на зразок: Помилка …

2
“Шаблон <>” проти “шаблон” без дужок - яка різниця?
Припустимо, я заявив: template &lt;typename T&gt; void foo(T&amp; t); Тепер, в чому різниця між template &lt;&gt; void foo&lt;int&gt;(int&amp; t); і template void foo&lt;int&gt;(int&amp; t); семантично? І чи мають шаблон-без-дужок та шаблон-з-порожніми дужками іншу семантику в інших контекстах? Пов’язане з: Як змусити конкретний екземпляр шаблону C ++ створити екземпляр?

6
Що таке міксини (як концепція)
Я намагаюся зрозуміти концепцію Mixin, але, здається, я не можу зрозуміти, що це таке. Я бачу це так, що це спосіб розширити можливості класу за допомогою спадкування. Я читав, що люди називають їх "абстрактними підкласами". Хтось може пояснити, чому? Буду вдячний, якщо б ви пояснили свою відповідь на наступному прикладі …
76 c++  oop  templates  mixins 

10
AngularJS - візуалізація на стороні сервера
Як ви знаєте, AirBnB opensourced Rendr ( http://nerds.airbnb.com/weve-open-sourced-rendr ) , який повинен дозволити стороні сервера візуалізації в Backbone додатків. Це круто, тому що можна запустити першу "ітерацію" візуалізації шаблону на сервері, і клієнт отримує повністю відтворений HTML-документ плюс весь додаток JS. Це значно скорочує час для відображення та може позбавити …


3
Як я можу отримати глибину багатовимірного std :: вектора під час компіляції?
У мене є функція, яка займає багатовимірність std::vectorі вимагає передавати глибину (або кількість розмірів) як параметр шаблону. Замість жорсткого кодування цього значення я хотів би написати constexprфункцію, яка буде приймати std::vectorі повертати глибину як unsigned integerзначення. Наприклад: std::vector&lt;std::vector&lt;std::vector&lt;int&gt;&gt;&gt; v = { { { 0, 1}, { 2, 3 } }, …

4
Мета-програмування шаблонів
Хтось може мені пояснити, чому перший спосіб метапрограмування шаблону збирається нескінченним циклом, а другий працює правильно. #include &lt;iostream&gt; using namespace std; template&lt;int N, int M&gt; struct commondivs { static const int val = (N&lt;M) ? commondivs&lt;N,(M-N)&gt;::val : commondivs&lt;(N-M),M&gt;::val; }; template&lt;int N&gt; struct commondivs&lt;N,N&gt; { static const int val = N; …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.