有没有办法强制传递参数作为参考?

Is there any way force to pass an argument as reference?

作为上面的问题,我想让下面的代码工作。

应将多种类型的字符串参数传递给函数。

    // declaration, maybe in .h file
    int matches(std::string& s1, std::string& s2, std::string& s3);

    inline int matches(std::string s1, std::string s2, std::string s3) {
        return matches((std::string&) s1, (std::string&) s2, (std::string&) s3); // here i can't figure out
    }


    // implementation
    int matches(std::string& s1, std::string& s2, std::string& s3) {
        ...
    }

    int main() {
        std::string foo("foo"), bar("bar"), baz("baz");

        matches("foo",  "bar",   "baz" );
        matches( foo,    bar,    "baz" );
        matches( foo,   "bar",   "baz" );
        ...
        matches("foo",   bar,    "baz" );
        matches( foo,    bar,     baz  );

        return 0;
    }

我用谷歌搜索了几分钟,但找不到解决方案。

我需要放弃这个问题吗?

如有任何建议或回复,我们将不胜感激。

感谢 @RuslanTushov,我找到了解决方案。

我post我自己的答案在这里给任何有同样问题的人。

    // implementation
    int matches(const std::string& s1, const std::string& s2, const std::string& s3) {
        ...
    }

    int main() {
        std::string foo("foo"), bar("bar"), baz("baz");

        matches("foo",  "bar",   "baz" );
        matches( foo,    bar,    "baz" );
        matches( foo,   "bar",   "baz" );
        ...
        matches("foo",   bar,    "baz" );
        matches( foo,    bar,     baz  );

        return 0;
    }