Для справки, я компилирую в С++ 11.
Я начинаю писать шахматный движок, используя растровое представление доски в виде кусочно-ориентированного подхода. Похоже, что подходящий тип, который будет использоваться, - uint64_t, однако, после поиска в Интернете довольно немного, я немного не уверен в "лучшей практике" здесь.
Я начинаю определять файл .hpp для игрового поля. Во-первых, я смущен тем сходным поведением, которое демонстрирует другой код.
#include <cstdint>
uint64_t board;
и
#include <cstdint>
std::uint64_t board;
оба компилируются просто отлично. Какая разница между двумя? Лучше другого?
Кроме того, я заметил, что мне даже не нужно включать cstdint, чтобы иметь возможность использовать uint64_t:
#include <iostream>
uint64_t board;
и
#include <iostream>
uint64_t std::board;
Оба компилируются просто отлично, как и два примера cstdint выше. Таким образом, я довольно смущен относительно того, как uint64_t предполагается использовать в С++ 11, и почему все 4 из этих примеров делают то же самое. Мне сказали, что вы хотите использовать cstdint, но похоже, что iostream также предоставляет тип def? Существует ли конкретный способ "лучший/безопасный" (например, с точки зрения конфликта пространства имен)?