【发布时间】:2020-12-30 10:21:36
【问题描述】:
GLib docs 说 g_key_file_has_key() 已被弃用,因为它使用了 GError,但新的替换函数在哪里?我找不到任何合理的候选者......从文档中,它应该使用 gboolean * error_out 参数而不是 GError **error_out 参数。
【问题讨论】:
标签: updates deprecated glib
GLib docs 说 g_key_file_has_key() 已被弃用,因为它使用了 GError,但新的替换函数在哪里?我找不到任何合理的候选者......从文档中,它应该使用 gboolean * error_out 参数而不是 GError **error_out 参数。
【问题讨论】:
标签: updates deprecated glib
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 */
【讨论】:
GError 文档不应该这么说;我会尽快修复它。感谢您指出。如果一个函数被弃用,该函数的文档会这样说;这是标记弃用的规范方式。