// file : foo -*- C++ -*- // copyright : Copyright (c) 2014-2016 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file // #include // Define foo module interface. // // For VC must be included only into module implementation (foo.cxx). The // module should be imported into consumer file (with the import declaration). // // For CLang must be #included into both module implementation and consumer // files. // #if defined(MODTEST_USE_MODULES) && defined(_MSC_VER) module foo; export { #endif // Required by macro isolation test. // #ifdef MODTEST_MACRO # undef MODTEST_MACRO #endif #define MODTEST_MACRO 1 int foo_value (int v); struct foo { explicit foo (int v); int value (); int macro (); // std::string // message (const char* s) const; private: int v_; }; // Close module export declaration. // #if defined(MODTEST_USE_MODULES) && defined(_MSC_VER) } #endif