Здравствуйте!
Переопределил operator<< для своего потока, для всех std::intN_t/uintN_t
При выводе unsigned long говорит, что оператор амбигус: "error C2593: 'operator <<' is ambiguous", и перечисляет все int* перегрузки, и ни одна ему не нравится больше других
Глянул, как они определены в MSVC
typedef signed char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
Как видно, unsigned long тут нет. Можно было бы добавить перегрузку для unsigned long, но в другом компиляторе может быть всё по другому, и unsigned long уже будет в этом списке. Как тут быть?
Можно шаблон конечно сделать для целых типов, но пока хотелось бы решить без этого