martinmoene / nonstd-lite

Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments
Boost Software License 1.0
82 stars 4 forks source link

How to #3

Open DBJDBJ opened 4 years ago

DBJDBJ commented 4 years ago

Just cloned this to my devl machine. I can see each submodule has a 'test' folder, etc.

How do we achieve:

#nclude <nonstd/any.hpp>
#nclude <nonstd/byte.hpp>
#nclude <nonstd/optional.hpp>
// and so on for all the nonstd headers

It might be some advanced (git) usage? Do we manually copy the headers to where we like to have nonstd folder?

Ideally I would like to have nonstd as a submodule with all the headers in the root.

ps: I am using Visual Studio 2019 on WIN10 Pro. I also use Visual Code and Github Desktop. I am not a git beginner.

martinmoene commented 4 years ago

@DBJDBJ, thanks for you input.

I am not a git beginner.

I am not a very experienced git user :)

I'm open to suggestions on how to make this repository useful as a collection of the nonstd lite code.

~For me this repository started out as the location to describe work that is common to all nonstd lite projects.~ no, that is nonstd-lite-project.

DBJDBJ commented 4 years ago

Me thinks, "the most useful shape" is this:

any.hpp
byte.hpp
optional.hpp
 .... the rest of headers ...
non_std_lite_the_rest (submodule)
                 doc/
                      any.md
                      byte.md
                      optional.md
                      ... the rest ...
                 test/
                 util/

Where "non_std_lite_the_rest " is a repo where all the other related artefact are: doc's, testing, tools ...

This way, one can include nonstdlite in the project as a git submodule and use it most simply:

folder: stdlite (submodule)
          any.hpp
          byte.hpp
          optional.hpp
          ... the rest of the headers ...
          non_std_lite_the_rest (submodule)
main.cpp

Thus in the layout as above one can do

// main.cpp
#include "stdlite/any.h"
#include "stdlite/byte.h"
#include "stdlite/optional.h"

int main ( int , char ** ) 
{
    return EXIT_SUCESS ;
}

I hope this is more clear :)