Едва ли. Как другие сказал, можно получить часть того, что Вы хотите путем списка методов экземпляров классов (например, String.instance_methods
), но это не помогает Вам, если файл, который Вы открываете, вновь открыл класс (если Вы не проверяете прежде и после).
, Если Вам не нужен программируемый доступ к списку методов, рассмотрите проверку документации для класса, модуля или метода с помощью ri
инструмент командной строки.
Ну, я не знаю о uint32_t
, но для основных типов ( bool, char, signed char, unsigned char, wchar_t, short, unsigned short , int, unsigned int, long, unsigned long, float, double и long double
) вам следует использовать шаблоны numeric_limits
через #include
.
cout << "Minimum value for int: " << numeric_limits<int>::min() << endl;
cout << "Maximum value for int: " << numeric_limits<int>::max() << endl;
If uint32_t
является #define
одного из вышеперечисленных, чем этот код должен работать из коробки
cout << "Maximum value for uint32_t: " << numeric_limits<uint32_t>::max() << endl;
Ну, uint32_t всегда будет 32-битным и всегда беззнаковым, поэтому вы можете безопасно определять его вручную:
#define UINT32_MAX (0xffffffff)
Вы также можете сделать
#define UINT32_MAX ((uint32_t)-1)
Вы можете устранить проблемы с порядком #include
, изменив процесс сборки, указав вместо этого символ __ STDC_LIMIT_MACROS
в командной строке компилятора:
cxx -D__STDC_LIMIT_MACROS ...
Конечно, у вас все равно будут проблемы, если заголовок #undef
будет содержать этот символ.
Кроме того, авторы реализации стандартной библиотеки, которую вы используете, возможно, не предполагали, что пользователи будут устанавливать этот конкретный символ; может быть флаг компилятора или другой символ, который пользователи намерены использовать для включения типов C99 в C ++.
std :: numeric_limits
определяет максимальное значение для типа T
.