Результаты поиска по запросу "template-meta-programming"

1 ответ

@ Rakete1111 - вы (и g ++) правы; Я вообще не знал об этом улучшении C ++ 17; Благодарю.

clang, похоже, не согласны с тем, должен ли этот код компилироваться или нет: #include <type_traits> template <typename Signature, int N = 0> struct MyDelegate { }; template <typename D> struct signature_traits; template <template <typename> ...

3 ответа

ODR

ю в виду этот ответ: https://stackoverflow.com/a/4447057/930315 [https://stackoverflow.com/a/4447057/930315] Я столкнулся с тем же вопросом, что и ОП процитированного вопроса, имея функцию template<typename T> void func(T& val);и его ...

1 ответ

, Это было бы хорошим дополнением к Hana, чтобы сделать их заказчиками, потенциальная ловушка в том, что порядок может в конечном итоге зависеть от платформы / компилятора.

отрим следующую программу: #include <tuple> #include <vector> #include <iostream> #include <type_traits> template <class T> struct ordered {}; template <class... T> struct ordered<std::tuple<T...>> { using type = /* a reordered tuple */; }; ...

ТОП публикаций

1 ответ

 и все, в VC ++ мне нужно переопределить родительские типы самим собой, и я не могу использовать что-либо из родительского класса при определении дочернего типа. К счастью, это не проблема разрушения дизайна, но немного раздражает. Спасибо за код.

вопрос объединяет несколько фрагментов кода и немного сложен, но я постарался максимально уменьшить его. Я пытаюсь использоватьstd::enable_if условно вызывать правильный конструктор в результате неоднозначных сигнатур функций, когда в качестве ...

1 ответ

Вариативные псевдонимы шаблона в качестве аргументов шаблона

Сначала некоторый код, затем некоторый контекст, затем вопрос: template <typename T> using id = T; template <template <typename...> class F, typename... T> using apply1 = F <T...>; template <template <typename...> class F> struct apply2 { ...

4 ответа

инициализация массива constexpr для сортировки содержимого

Это скорее загадка, чем проблема реального мира, но я попал в ситуацию, когда хочу написать что-то, что ведет себя точно так же, как template<int N> struct SortMyElements { int data[N]; template<typename... TT> SortMyElements(TT... tt) : data{ ...

1 ответ

То есть аргумент принимается по ссылке на const, а не по значению. Как есть, вы пытаетесь скопировать кортеж non-constexpr в константном выражении - это не может работать. По ссылке это хорошо, так как вы на самом деле не читаете кортеж.

я естьstatic_loop построить как это template <std::size_t n, typename F> void static_loop(F&& f) { static_assert(n <= 8 && "static loop size should <= 8"); if constexpr (n >= 8) f(std::integral_constant<size_t, n - 8>()); if constexpr (n >= ...

6 ответов

 литералы действительно могут быть константами времени компиляции.

м коде есть строковые теги, которые конвертируются в числа и используются для поиска значений в структуре тег-значение. У меня есть что-то вроде этого: void foo() { type value = search("SomeTag"); }Где поиск определяется так: type search(const ...

4 ответа

Могу ли я перегружать функции тип-чертами?

Допустим, у меня есть шесть типов, и каждый из них принадлежит к концептуальной категории. Вот диаграмма, которая показывает это: Или, возможно, более конкретный пример для вас: Я хочу написать две функции, которые будут обрабатывать все 6 ...

4 ответа

Как я могу использовать std :: enable_if с само-выводимым типом возврата?

C ++ 14 [http://en.wikipedia.org/wiki/C++14#Function_return_type_deduction]будет иметь функции, чей тип возврата может быть выведен на основе возвращаемого значения. auto function(){ return "hello world"; }Могу ли я применить это поведение ...