https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109679
Bug ID: 109679
Summary: export using for functions does not work as specified
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: nico at josuttis dot de
Target Milestone: ---
Consider the following simple module export scenario to wrap a header file in a
module:
//***** foo.hpp:
#ifndef FOO_HPP
#define FOO_HPP
inline int foo()
{
return 42;
}
#endif // FOO_HPP
//***** foomod.cppm:
module;
#include "foo.hpp"
export module FooMod;
export using ::foo;
//***** testfoo.cpp:
import FooMod;
int main()
{
return foo();
}
According to the example 2 in "6.6 Program and linkage [basic.link]" and
example 2 in "10.2 Export declaration [module.interface]" this should work
(function f() in both examples).
This is an important feature because it alows programmers to softly migrate
header files to modules.