我正在阅读正式的CPPCoreGuidelines以正确理解何时可靠地依靠RVO,何时不可信.在F20,写道:
如果移动类型(例如,数组)很昂贵,请考虑在免费存储上分配它并返回句柄(例如,unique_ptr),或者将其传递给非const目标对象以进行填充(用作out参数)
我知道非STL类型没有针对移动进行优化,但是如何轻松检测其他类型的移动昂贵,所以我不会在它们上使用RVO?
我正在创建一个共享库,我注意到通过使用__attribute__((visibility("default")))(与 一起-fvisibility=hidden)我的库也导出_init和_fini符号。如果我使用exported_symbols 列表(连同-Wl,--version-script=<file_list>),lib 只导出我的函数,这是完美的。
这是一种使用第一个解决方案并且只导出我的函数的方法,没有_init和_fini?谢谢
我正在使用 cmdline 中的 clang-tidy clang-tidy readability-implicit-bool-conversion ... <other_options>"。这个 clang-tidy 选项有子选项AllowPointerConditions,为了让 clang-tidy 允许我使用if (!p)任何警告。
https://clang.llvm.org/extra/clang-tidy/checks/readability-implicit-bool-conversion.html
如何从命令行启用此功能?谢谢