I just want to update that the code now supports 254-bit range and multiple GPUs (on linux only).
Can not compile it:
Merge.cpp:10:21: error: 'filesystem' is not a namespace-name
10 | namespace fs = std::filesystem;
| ^~~~~~~~~~
Merge.cpp: In function 'bool isRegularFile(const string&)':
Merge.cpp:20:12: error: 'fs' has not been declared
20 | return fs::is_regular_file(filePath);
| ^~
Merge.cpp: In member function 'void Kangaroo::MergeDir(std::string&, std::string&)':
Merge.cpp:77:30: error: 'fs' has not been declared
77 | for (const auto& entry : fs::directory_iterator(dirName)) {
| ^~
Merge.cpp:78:13: error: 'fs' has not been declared
78 | if (fs::is_regular_file(entry.path())) {
| ^~
make: *** [Makefile:60: obj/Merge.o] Error 1
What version of gcc/c++ are you using? You need a modern version with support of the cross platform filesystem library.