diff options
Diffstat (limited to 'build2/cxx-modules/modtest/foo')
-rw-r--r-- | build2/cxx-modules/modtest/foo | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/build2/cxx-modules/modtest/foo b/build2/cxx-modules/modtest/foo new file mode 100644 index 0000000..620816b --- /dev/null +++ b/build2/cxx-modules/modtest/foo @@ -0,0 +1,54 @@ +// file : foo -*- C++ -*- +// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +// #include <string> + +// 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 |