Если же вам действительно мало 32-битного числа - то вы не можете использовать ни int ни size_t для этих целей, вы должны использовать именно 64-битное целое независимое от платформы.
size_t? Желательно со ссылками на документацию и стандарт языка. прошу перечитать сообщение, на которое был мой первый ответ и понять уже наконец, о чём идёт речь
/// Большая поверхностно документированная проприетарная библиотека с горой спагетти-кода...
/// Где-то на окраине одного из заголовочных файлов.
typedef const T T1; // GenericServiceHandler
...
/// Где-то в пространстве функции твоего проекта.
const T1 c; std::span (да и всей стандартной библиотеке контейнеров) в рамках своей гипотезы. Сделай объявление внутренних типов std::span так, чтобы ты ни разу не использовал квалификатор const.pointer, const_pointer, reference и const_reference._Tp в шаблон может зайти как чистый тип, так и квалифицированный.this.std::span. Как ты укажешь константность элементов этого отображения? Как ты укажешь константность элементов произвольного диапазона?Константность это свойство поля, а не типа.
using type_t = int;
using reference_t = type_t&;
using const_reference_t = const reference_t;int - это не явный тип, а параметр шаблона? Что если в шаблон передан уже константный тип? А ничего страшного не будет, просто reference_t и const_reference_t будут идентичными. Дело в том, что в конечном итоге компилятору важно только собственное имя типа и его квалификаторы. тогда для чего он нужен?
template< typename TArgument >
void foo( const TArgument argument );foo<float>( ... ); не указывая тип аргумента явно?Если да, то получается, что мы можем использовать сразу float, а не запихивать в double число с f.
Dell p75f
Обратите внимание, что литералы типа с плавающей запятой по умолчанию относятся к типу double. Суффикс f используется для обозначения литерала типа float.
f выполнит преобразование своего аргумента и приведет его к типу float. Если этот идентификатор не использовать, то, согласно стандарту, литерал с плавающей точкой имеет тип double, но сужающая конверсия типа все равно будет иметь место для случая, когда литерал используется для инициализации значения отличного от типа double. Прочёл о том что при объявлении переменной типа float, значение в ней хранится как double, а для того чтобы задать тип хранения как float мы используем букву f.