【问题标题】:GLib docs say that g_file_has_key() is deprecated because it uses GError, but where is the new, replacement function?GLib 文档说 g_file_has_key() 已被弃用,因为它使用 GError,但新的替换函数在哪里?
【发布时间】:2020-12-30 10:21:36
【问题描述】:

GLib docsg_key_file_has_key() 已被弃用,因为它使用了 GError,但新的替换函数在哪里?我找不到任何合理的候选者......从文档中,它应该使用 gboolean * error_out 参数而不是 GError **error_out 参数。

【问题讨论】:

    标签: updates deprecated glib


    【解决方案1】:

    g_key_file_has_key() 没有被弃用,文档也没有说它是。它确实表明该函数不遵循所有 GError 约定,但这并不意味着它已被弃用。

    意味着要正确使用该功能,您必须做到:

    g_autoptr(GError) local_error = NULL;
    gboolean has_key = g_key_file_has_key (kf, group, key, &local_error);
    if (local_error != NULL)
      /* handle error */
    

    而不是做:

    g_autoptr(GError) local_error = NULL;
    if (!g_key_file_has_key (kf, group, key, &local_error))
      /* handle error */
    

    【讨论】:

    • «docs» 链接下的 html 页面显示:“GLib 本身中有一些函数,例如 g_key_file_has_key(),因此已被弃用。”,这是一个关于函数弃用的明确声明......(有些方面)文档是否错误?
    • GError 文档不应该这么说;我会尽快修复它。感谢您指出。如果一个函数被弃用,该函数的文档会这样说;这是标记弃用的规范方式。
    • 感谢您的修复:)
    猜你喜欢
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多