8000 Review anonymous file mode enum. · Issue #902 · BlueBrain/HighFive · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Feb 26, 2025. It is now read-only.
This repository was archived by the owner on Feb 26, 2025. It is now read-only.
Review anonymous file mode enum. #902
Open
@1uc

Description

@1uc

enum : unsigned {
/// Open flag: Read only access
ReadOnly = 0x00u,
/// Open flag: Read Write access
ReadWrite = 0x01u,
/// Open flag: Truncate a file if already existing
Truncate = 0x02u,
/// Open flag: Open will fail if file already exist
Excl = 0x04u,
/// Open flag: Open in debug mode
Debug = 0x08u,
/// Open flag: Create non existing file
Create = 0x10u,
/// Derived open flag: common write mode (=ReadWrite|Create|Truncate)
Overwrite = Truncate,
/// Derived open flag: Opens RW or exclusively creates
OpenOrCreate = ReadWrite | Create
};

and then here:

explicit File(const std::string& filename,
unsigned openFlags = ReadOnly,
const FileAccessProps& fileAccessProps = FileAccessProps::Default());

isn't particularly type safe. One option is:

class File {
  enum class FileMode {
    ReadOnly,
  };

  static constexpr ReadOnly = FileMode::ReadOnly;

  
};

and a lot of boiler plate to allow it to work properly as a bitset. Or use:

using FileMode = std::bitset<?>;

class File {
  static constexpr FileMode ReadOnly = {...};
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    v3Anything that needs to be resolved before `v3`.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0