我想通过传递命令来从Makefile中取消定义变量.这可能吗?男人做的并没有那么大帮助.
我想做的事情如下:
我想用FreeBSD编译一个端口.此端口标记为broken.虽然我没有更改Makefile的权限,但我正在寻找取消定义的可能性broken?变量.
编辑:在Makefile中:
BROKEN=                 does not link
而且我想取消/取消定义.因为Makefile没有进一步执行.到目前为止,这与编译器标志无关.
我正在尝试解析用PHP编码的JSON字符串,并通过TCP发送到C++客户端.
我的JSON字符串是这样的:
{"1":{"name":"MIKE","surname":"TAYLOR"},"2":{"name":"TOM","surname":"JERRY"}}
在C++客户端上,我使用的是jsoncpp库:
void decode()
{
    string text =     {"1":{"name":"MIKE","surname":"TAYLOR"},"2":{"name":"TOM","surname":"JERRY"}};
    Json::Value root;
    Json::Reader reader;
    bool parsingSuccessful = reader.parse( text, root );
    if ( !parsingSuccessful )
    {
        cout << "Error parsing the string" << endl;
    }
    const Json::Value mynames = root["name"];
    for ( int index = 0; index < mynames.size(); ++index )  
    {
        cout << mynames[index] << endl;
    }
}
问题是我没有得到任何输出,甚至没有关于解析的错误(如果有的话).你能帮我理解我做错了什么吗?
我有这样的结构:
struct VrtxPros{
    long idx;
    std::vector<std::string> pros;
    VrtxPros(const long& _idx=-1, const std::string& val="") : idx(_idx)
    {
         if ( !val.empty() && val!="" )
             pros.push_back(val);
    }
};
然后在代码中我使用它:
long idx = 1234;
VrtxPros vp( 2134, std::string("-1") );
if ( margin ) vp.pros[0] = idx;
编译器没有问题.我很想知道因为运营商应该提供参考.我无法找到一个operator=在std::string这将接受长达来源.
为什么代码编译?