LINUX.ORG.RU

История изменений

Исправление luke, (текущая версия) :

std:: пока увы нельзя как модули использовать

Я сегодня вот так вот на Slackware64-curren, собрав gcc 11.1.0, поэкспериментировал:

[luke@yaviniv modules-test]$ ls
hello.cpp  main.cpp
[luke@yaviniv modules-test]$ cat hello.cpp 
module;
#include <iostream>
#include <string_view>
export module hello;
export void greeter (std::string_view const &name)
{
  std::cout << "Hello " << name << "!\n";
}
[luke@yaviniv modules-test]$ cat main.cpp 
import hello;
int main (void)
{
  greeter ("world");
  return 0;
}
[luke@yaviniv modules-test]$ g++ -std=c++20 -fmodules-ts hello.cpp main.cpp -o modules_01
[luke@yaviniv modules-test]$ ./modules_01 
Hello world!
[luke@yaviniv modules-test]$ ls
gcm.cache  hello.cpp  main.cpp	modules_01
[luke@yaviniv modules-test]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/luke/pkg/gcc-11.1.0/libexec/gcc/x86_64-pc-linux-gnu/11.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../src/configure --prefix=/home/luke/pkg/gcc-11.1.0 --disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.1.0 (GCC)

Здесь вроде как подробнее описано: https://gcc.gnu.org/wiki/cxx-modules

Исходная версия luke, :

std:: пока увы нельзя как модули использовать

Я сегодня вот так вот на Slackware64-curren, собрав gcc 11.1.0, поэкспериментировал:

[luke@yaviniv modules-test]$ ls
hello.cpp  main.cpp
[luke@yaviniv modules-test]$ cat hello.cpp 
module;
#include <iostream>
#include <string_view>
export module hello;
export void greeter (std::string_view const &name)
{
  std::cout << "Hello " << name << "!\n";
}
[luke@yaviniv modules-test]$ cat main.cpp 
import hello;
int main (void)
{
  greeter ("world");
  return 0;
}
[luke@yaviniv modules-test]$ g++ -std=c++20 -fmodules-ts hello.cpp main.cpp -o modules_01
[luke@yaviniv modules-test]$ ./modules_01 
Hello world!
[luke@yaviniv modules-test]$ ls
gcm.cache  hello.cpp  main.cpp	modules_01
[luke@yaviniv modules-test]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/luke/pkg/gcc-11.1.0/libexec/gcc/x86_64-pc-linux-gnu/11.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../src/configure --prefix=/home/luke/pkg/gcc-11.1.0 --disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.1.0 (GCC)