相关疑难解决方法(0)

__PRETTY_FUNCTION __,__ FUNCTION __,__ func__之间有什么区别?

什么之间的区别__PRETTY_FUNCTION__,__FUNCTION__,__func__,和他们在哪里记录?我如何决定使用哪一个?

c c++ compiler-construction standards

205
推荐指数
5
解决办法
10万
查看次数

是否有广泛可用的`__FILE__`的宽字符变体?

一个大致可以使用__LINE____FILE__在C++程序,许多工具链,包括GCC.

__LINE__根据海湾合作委员会评估的类型表达int;
__FILE__评估char const[N]其中N是适当的值.

  • 是否有任何主要工具链提供__FILE__与类型相同的wchar const[N]
  • 如果是这样,它是什么?

c++

13
推荐指数
1
解决办法
4405
查看次数

在lambda内部有记录函数名称的好方法吗?

与大多数日志记录框架一样,我们的日志记录框架使用__FUNCTION__预处理器宏将当前函数插入到日志文件中,以便我们的日志记录如下所示:

L4  T11332 609661594 [PreProcessorFunctions::RegenerateLinkIDs] [ENTER]
L4  T11332 609661594 [PreProcessorFunctions::RegenerateLinkIDs] [EXIT]
L4  T11332 609661594 [ConfigMerger::ValidateConfigObject] [ENTER]
L3  T11332 609661594 [ConfigMerger::ValidateConfigObject] Configuration Exists: 1
Run Code Online (Sandbox Code Playgroud)

当我们开始更多地使用C++ 11时,我注意到labmdas产生了准确但无益的__FUNCTION__输出:

L4  T9604 609661594 [`anonymous-namespace'::<lambda1>::operator ()] Writing EMX config file: C:\windows\TEMP\CBE01448-32A2-493A-A9A1-2112F5709028\CA37BE5C-B398-4D61-980D-66B8E1E6D001\\EMXConfiguration.xml
L4  T11332 609661594 [`anonymous-namespace'::<lambda3>::operator ()] Writing Auditing config file: C:\windows\TEMP\CBE01448-32A2-493A-A9A1-2112F5709028\CA37BE5C-B398-4D61-980D-66B8E1E6D001\\Auditing.xml
L4  T11960 609661594 [`anonymous-namespace'::<lambda2>::operator ()] Writing UEM config file: C:\windows\TEMP\CBE01448-32A2-493A-A9A1-2112F5709028\CA37BE5C-B398-4D61-980D-66B8E1E6D001\\Configuration.xml
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,所有类范围都已丢失,我们现在知道的是此日志语句来自匿名lambda.有没有人有一个很好的策略来退出封闭功能?这似乎是记录最有用的东西......

c++ c++11

11
推荐指数
1
解决办法
1827
查看次数

标签 统计

c++ ×3

c ×1

c++11 ×1

compiler-construction ×1

standards ×1