Reference to 'byte' is ambiguous

That is bad practice, and the cause of your error.

See c++ - Why is "using namespace std;" considered bad practice? - Stack Overflow

If you need a standard library name a handful of times, write it in full, e.g.

std::vector<int> v; // good
// ---
using namespace std; // bad, pulls in all names from the std namespace
vector<int> v;

If you need the same name many times and want to save on typing, you could use specific using directives:

using std::vector; // okay
vector<int> v;

You probably don't want to do this inside of a public header of a library, but in your own code, it's mostly harmless.

If the scope is limited, using namespace isn't harmful either, e.g.

void some_function() {
  using namespace std; // okay
  vector<int> v; 
}

If you want to avoid typing long namespace names, you can create an alias:

std::filesystem::path p = "..."; // long
// ---
namespace fs = std::filesystem;
fs::path p = "..."; // easier to read and type