Swift can call C-based functions and make use of C structs regardless of platform (Windows, Linux, Darwin). Directly calling C++ functions and using C++ structs/classes is not supported yet, but there are ongoing efforts to implement C++ interoperability. C++ functions can be indirectly called via C wrappers. Objective-C and Objective-C++ are also supported on Darwin only since Darwin and Apple frameworks rely heavily on Objective-C and Objective-C++, and the Objective-C runtime is available on Darwin platforms. With regard to Objective-C++, you still have to have an Objective-C interface that wraps the Objective-C++ code because C++ interoperability is still evolving and not officially supported.
It's not the IDE that matters, like Xcode, but the Swift toolchain that you are using. Xcode does provide capabilities to build bridging headers automatically, but, they can be also developed manually.
C-interoperability is built into the language. There's lots of material out there about how to interface with C-functions and C-structs. You just have to concentrate on straight C rather than Objective-C++ on Linux and Windows.