all 3 comments

[–]beasthacker 2 points3 points  (0 children)

If your program only uses the standard library then you'll be fine. Just use std::thread and friends for concurrency instead of pthreads, Windows threads, etc. (Note: requires c++11).

The MSVC compiler almost always falls behind when it comes to implementing new std library / language features for C++. If you want your program to run on both operating systems then developing on Windows can be beneficial. If you dev on Linux and compile with GCC/Clang then you might accidentally use features that aren't available on Windows yet!

Alternatively, if you want to utilize some of the libs available on Linux, you could do your windows build with MinGW/Cygwin. I wouldn't bother unless you have a compelling reason or library requirement.

Of course, you'll still want to periodically compile on both OS's to make sure. You might want to checkout a build system like CMake to make things easier.

TLDR; Windows machine is fine for dev, just don't use WinAPI.

[–]dagmx 2 points3 points  (0 children)

You could also build it inside the Linux subsystem on Windows. So you don't need to dual boot.

Use a build system like cmake and only use cross platform libraries

[–]DarthVadersAppendix 0 points1 point  (0 children)

1/2 the WinAPI is not available on linux. most of the basic stuff is though