short version:
What are the general guidelines to making libraries?
long version:
I'm currently experimenting with making a C++ lib for x86 hardware information fetching. This is my first sort of hands-on experience with trying to make a lib and I just want to hear the advice of people who know far better than me. I have a few questions so i'll list them here:
- What are the main considerations/guidelines in making libs?
- Are there fundamental ideas like RAII but for lib design? If not, what are the core philosophies if there are any?
- What tools/services can I use to test my code in a cross-platform environment?
- Same as above, but are there cross-vendor testing platforms that allows me to run code in different x86 CPU brands?
- What's the priority between performance and code readability specifically for libs?
I'm not taking my project seriously to be important/useful to other people but I would still like to hear your thoughts and maybe even personal experience in library design. It would be greatly appreciated.

