其他分享
首页 > 其他分享> > c-在字符串文字的上下文中,“ R”是什么意思?

c-在字符串文字的上下文中,“ R”是什么意思?

作者:互联网

这段代码基本上与AMPS服务器对话,并尝试发布主题.

在publish()的第二个参数中R的含义是什么?

#include <ampsplusplus.hpp>
#include <iostream>

int main(void)
{
    const char* uri = "tcp://127.0.0.1:9007/amps/json";

    // Construct a client with the name "examplePublisher".

    AMPS::Client ampsClient("examplePublisher");

    try
    {
        // connect to the server and log on
        ampsClient.connect(uri);
        ampsClient.logon();

        // publish a JSON message
        ampsClient.publish("messages",
                           R"({ "message" : "Hello, World!" ,)"
                           R"(client" : 1 })");

    }
    catch (const AMPS::AMPSException&amp; e)
    {
        std::cerr << e.what() << std::endl;
        exit(1);
    }
    return 0;
}

解决方法:

prefix(optional) R "delimiter( raw_characters )delimiter" (6) (since C++11)

Raw string literal.用于避免转义任何字符.分隔符之间的所有内容都将成为字符串的一部分.前缀(如果存在)具有与上述相同的含义.

例:

const char* s1 = R"foo(
Hello
World
)foo";
//same as
const char* s2 = "\nHello\nWorld\n";

其中foo是分隔符.

在您的情况下,将显示一条消息:

{ "message" : "Hello, World!" ,client" : 1 } 

标签:c,string-literals
来源: https://codeday.me/bug/20191013/1906463.html