Вопросы по теме 'non-type'

локальная переменная как аргумент шаблона нетипа
Я хочу сделать что-то вроде следующего: Example(&Class::MemberFunction, this)); //... template<class T_CLASS> inline static void Example(void (T_CLASS::*MemberFunctionPointer)(), T_CLASS* InstancePointer) {...
3932 просмотров
schedule 05.06.2022

Неверно ли, что gcc не диагностирует сужающие преобразования в аргументах шаблона, отличного от типа?
Следующая программа компилируется без ошибок и предупреждений с помощью gcc 4.8.1, -Wall -std=c++11 : template<unsigned N> struct A{}; int main(){ A<1-2> a; (void)a; return 0; } clang 3.3 с теми же параметрами выдает...
1198 просмотров
schedule 25.03.2022

Проверка времени компиляции параметра нетипового шаблона С++
У меня есть класс С++ с двумя параметрами шаблона, отличными от типа: Измерение типа size_t и постоянная ссылка на вектор объектов. template <size_t DIMENSION, const std::vector<Tuple>& BORDERS> class Rule { public:...
368 просмотров
schedule 18.04.2022

Нетиповые (справочные) параметры шаблона и связь
В следующих, int i{3}; const int j{3}; extern const int k{3}; template <typename T, T&> void f() {} int main() { f<int, i>(); // OK f<int const, j>(); // not valid template argument: 'j' has not external...
1388 просмотров
schedule 07.04.2022

Могу ли я использовать параметр типа в шаблоне для параметра, не являющегося типом?
Я хочу иметь квалифицированную инициализацию класса по умолчанию, даже если конструктор не имеет параметров. Поэтому я пытаюсь установить значение по умолчанию с определением шаблона, попробовав что-то вроде этого ниже. Инициализировать параметр...
85 просмотров
schedule 08.02.2023

Создание экземпляра шаблона не типовым параметром
template<typename T, T MIN , T MAX> struct Range { const T min; const T max; Range():min(MIN),max(MAX){}; }; template<> struct Range<float32, MIN, MAX> { typedef float32 T; const T min; const T max;...
25 просмотров

Можно ли использовать лямбды в качестве параметра шаблона, не являющегося типом?
Допустим ли следующий код? template <auto Lambda> struct A {}; int main () { auto lmb = [](int i){return i*i;}; A<lmb> a; return 0; } Я заметил, что g ++ отлично его компилирует, а clang ++ возвращает error: a non-type...
165 просмотров
schedule 14.03.2022