Giter VIP home page Giter VIP logo

cxx-modules-sandbox's Introduction

cxx-modules-sandbox

This repository is intended to host various corner cases with C++20's modules and how to build them with various build systems.

Is your build system not represented here? Please submit a PR to add its build configuration and it'd be great if it could be added to the CI configuration. The Dockerfile for the CI run is stored on the docker branch of this repository.

cxx-modules-sandbox's People

Contributors

billhoffman avatar mathstuf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cxx-modules-sandbox's Issues

More use cases

Some other use cases to add to this repository that I've mentioned elsewhere (Slack or Reddit):

  • generated sources
  • code that can confuse naïve scanners:
const char* foo = "
#include <vector>
import M;
";
  • module names expanded from macros (import and export)
  • module names expanded from macros on the command line (import and export)
  • overlapping file basenames (foo.mpp and foo.cpp)

Add Docker autobuilding

Something to make and upload Docker images from the docker branch should be done. I looked at Docker Hub's support, but it wants write access to all repositories which I cannot justify, so something else would need to be done (possibly also Cirrus CI (#1)?).

Specific CMake version?

Hello, and thanks for this repo,

It is very helpful as c++20 modules are a very attractive feature of the latest standard.
In an effort to configure the project, cmake throws the following configuration error (on Windows):

target_sources File set TYPE may only be "HEADERS"

So, I'd like to ask you if a need a specific cmake version for this to work (currently I am using version 3.23.1).

Thank you very much in advance!

Question about internal partition

Hi,
what is the difference between named/mymodule_part_impl and named/mymodule_part_internal ?

you mention MSVC specifics -internalPartition but i don't see the difference between the two files but you wrote that we need to build part_impl without -internalPartition and part_internal with it

Add symbol export macros

It is suspected that this will cause errors due to different macro expansions and BMI incompatibility errors.

[CMake] Hide symbols with GCC

Currently, -fvisibility=hidden causes module initializer symbols to be hidden. There is no way to tell GCC to export these symbols as __attribute__ is not allowed near the export module line.

Update code to be more uniform

Primarily:

  • .mpp extensions for module interface files (with an example not using this extension)
  • match module names with file basenames (with an example using mismatching names)

See discussion in #3.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.