- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我希望下面的代码可以工作,但我收到了一个编译错误:
error C2975: 'n' : invalid template argument for 'foo', expected compile-time constant expression
#include <iostream>
using namespace std;
template<int N>
struct foo
{
foo() { cout << N << endl; }
};
int main()
{
foo< __LINE__ > f;
}
为什么会这样?我虽然 __LINE__
会在模板实例化发生之前粘贴行号?
如果我想这样做,我应该只引入一个static const int
来保存行号还是有标准的解决方案?
最佳答案
在 VS 2010 10.0.40219.1 SP1Rel 和 Ideone 中为我工作
但是 MSDN 提到了导致 C2975 的问题,如果在带有编译器选项 /ZI
的模板中使用 __LINE__
:MSDN C2975
编辑:抱歉,我链接了德语版本,here in english
关于c++ - 在 visual studio 中使用 __LINE__ 宏作为模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5397782/
我已经创建了一个用于错误跟踪的宏。这是一个简化版本: #include #define ERR(...) \ printf("
这个问题在这里已经有了答案: Creating C macro with ## and __LINE__ (token concatenation with positioning macro) (
我在头文件中有一个函数: template inline void log() {} 然后我尝试这个技巧来使它更容易使用: #define LOG_LINE log() 然后在 .cpp 文件中我这
我可以将 __LINE__ 用作方法参数就好了,但我想要一种在使用字符串的函数中使用它的简单方法。 例如说我有这个: 11 string myTest() 12 { 13 if(!
基本上,我的问题是 this除了 perl 而不是 PHP。 我知道warn() 管理它,但是warn() 是核心perl,所以我理解它是否通常不可能。 附录(以防链接最终失败) 有一个功能 sub
在 C/C++ 中,是否有一个宏会告诉我相对于找到该宏的函数开头的行号,而不是相对于文件开头的行号? 最佳答案 不,但是您可以通过创建行偏移来做一些等效的事情: int func(char *s) {
考虑一下我写的这个简短的程序: #include template constexpr int add(const int& a, const int& b) {
在另一篇文章 (Scala, Maven, and preprocessors) 中,我询问了有关使用 m4 等工具预处理 Java 和 Scala 的问题。我需要添加 __FILE__ 和 __LI
假设,我从下面的代码构建了一个独特的函数体: #define TOKENPASTE(x, y) x ## y #define TOKENPASTE2(x, y) TOKENPASTE(x, y) #d
所以,我感兴趣的是一个类似于 __LINE__ 的宏,但不是返回行号,而是返回给定行内的位置。 它可以是行中的列或字符位置。例如,在代码中: #define THISCHAR int main(voi
我阅读了有关使用 Cppreference 的宏的信息. __LINE__ : expands to the source file line number, an integer constant,
是否有可能通过LINE 宏获取在线报告的整个字符串。示例代码: #include #define LOG(lvl) pLog(lvl, __LINE__, __FILE__) pLog(const
在 C++ 中调试的一个有用的打印是 std::cout << __LINE__ << std::endl; 当然你可以简单地打印一个带有行号的字符串,例如: std::cout << "this i
我尝试使用以下方法打印当前代码的行号: #include void err (char *msg) { printf ("%s : %d" , msg , __LINE__); } int
我不明白以下程序的输出: #include #define FOO std::cout 2: 3: #define FOO std::cout #define __LINE__ 3 #defi
有没有什么方法可以在 Javascript 中获取源代码行号,比如 C 或 PHP 的 __LINE__? 最佳答案 有一种方法,虽然更昂贵:抛出异常,立即捕获它,并从其堆栈跟踪中挖掘出第一个条目。参
我想做一些异常处理。我计划使用 __LINE__ 和 __FILE__ 宏。 我有一些 header Vectors.hpp,我在其中为 vector 结构实现了一些类。在这个类中,我实现了 oper
我正在编写一些我想集成到库中的代码。我希望它没有外部依赖性并且符合标准。我想使用模板创建一个唯一的类型以允许编译时类型检查。 更新: 下面的代码来自msdn,这不是我尝试做的。我尝试做的是在用户每次使
我正在编写一个简单的宏来显示 TRACE 信息。 这是我用的, #ifdef __DEBUG__ #define TRACE { PrintErrorMsg("Trace exception at
为什么 __LINE__ 根据它是在类似函数的宏还是在常规函数中使用而进行不同的评估? 例如: #include #define A() printf("%d\n",__LINE__); int ma
我是一名优秀的程序员,十分优秀!