头文件中的非内联函数定义,由两个内联函数包含

时间:2016-06-15 16:14:08

标签: c++

编译器抱怨func()的多个定义。

这似乎与驻留在头文件中的代码有关,该代码由多个其他.cpp文件包含。如果func()设置为内联,compilor会很高兴。但是,func()预计只执行一次......那么我的选择是什么?

namespace S
{
    const LDS &func()
    {
        static LDS ret;
        ...
        return ret;
    }
}

inline LDS &operator<<(LDS &str_,stringType1 &data_)
{
    str_ << S::func();
}

inline LDS &operator<<(LDS &str_,stringType2 &data_)
{
    str_ << S::func();
}

0 个答案:

没有答案