问题标签 [pragma]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5192 浏览

c - 有条件的“pragma omp”

我正在尝试使用 OpenMP 进行不同类型的并行化。结果,我的#pragma omp parallel for代码中有几行我(取消)交替注释。有没有办法让这些行有条件地使用类似下面的东西,而不是工作代码?

0 投票
2 回答
3465 浏览

c++-cli - 编译器错误 C2158 的最佳解决方法:make_public 不支持本机模板类型

我有两个 c++/cli dll(即用 /clr 编译),其中 A.dll 引用 B.dll。在程序集 B 中,我有一个方法 GetMgdClassB,我想从程序集 A 调用。这是程序集 B (B.cpp) 中的代码:

请注意,GetMgdClassB 方法采用 std::vector。在程序集 A 中,我尝试使用以下代码 (A.cpp) 调用此方法:

当我编译 A.cpp 时,我收到以下错误:

我想添加这个 pragma 的原因是因为默认情况下本机类型是程序集私有的。如果我删除编译指示,我会收到以下错误(如预期的那样):

因为模板实例化类型std::vector<B::NativeClassB *>是程序集私有的。

尝试的解决方案

1.使用void *,break类型安全:

更改方法,GetMgdClassB获取 avoid *并将其地址传递std::vector<NativeClassB *>给方法。在GetMgdClassB. 然后我可以static_cast传入void *std::vector<NativeClassB *> *. 当然,这可行,但会破坏类型安全。

2.为NativeClassB创建一个Managed wrapper,传递一个托管容器

创建一个托管类,说ref class NativeClassBWrapper谁的唯一目的是保留对本机 NativeClassB 的引用。更改 GetMgdClassB 以获取 NativeClassBWrappers 的托管容器(例如List<NativeClassBWrapper ^> ^)。这样做的缺点是必须在调用 GetMgdClassB 之前创建和填充一个新的托管容器,然后在托管类 B 中,我必须将它重新打包到本机容器中std::vector<NativeClassB *>(因为 B 中的代码处理这种类型。

目前,我倾向于使用解决方案 #1,因为 (a) 它不会引入任何性能问题,并且 (b) 我只会在少数情况下这样做。我不喜欢失去类型安全,但考虑到当前编译器使本机模板实例化类型可见的能力不足,这似乎是合理的。

问题:

有更好的解决方法吗?

相关问题:

C++ CLI 错误 C3767:候选函数不可访问

0 投票
2 回答
1645 浏览

xcode - 抑制 GCC 中的“不实现协议”警告

我想在 Xcode 中开发 iPhone 应用程序时抑制特定警告。警告是:

我知道我使用指令:

但是我不知道xxxxxxxxxxxx应该是什么。有任何想法吗?

(假设:这样做是有正当理由的。我需要这样做,因为否则我无法启用将警告视为错误选项。)

0 投票
2 回答
6146 浏览

c++ - 创建自定义#warning 标志

我正在构建一个商业应用程序,我们正在使用一些 GPL 代码来帮助我们。

如何添加#warningor#error语句,以便在为调试而构建代码时发出警告,但是当我们为发布而构建代码时会引发错误?

我可以:

在文件的开头,但我能做得更好吗?如果包含文件,是否有更好的方法来标记文件?

我正在使用带有 gcc 或 clang 的 Objective-C++。

0 投票
7 回答
61397 浏览

c++ - 使用#pragma warning push/pop 是临时改变警告级别的正确方法吗?

有时很难编写完全不会发出警告的 C++ 代码。然而,启用警告是个好主意。因此,通常需要禁用围绕某些特定构造的警告,并在所有其他代码段中启用它们。

到目前为止,我已经看到了两种方法。

第一个是使用#pragma warning( push )and #pragma warning( pop )

第二个是使用#pragma warning( default )

我在第二个变体中看到的问题是它丢弃了原始的警告级别——警告可能在此之前已经关闭,或者它的警告级别可能已经改变。使用default将丢弃这些更改。

第一种方法看起来很干净。有什么问题吗?有没有更好的方法来实现同样的目标?

0 投票
2 回答
784 浏览

c++ - 在 C++ DLL 的实例之间共享对象

大家早上好,

如果标题不太清楚,请见谅,我会在这里尝试更多解释:

我目前正在为 VBS2 使用 ASI。VBS2 从 VBS2 DLL 插件执行函数。我有自己的应用程序,我想在使用该插件时修改该插件中的变量,以更改 VBS2 正在执行的内容。我一开始可能很愚蠢,在 VBS2 程序运行时直接用我的应用程序更改变量。

当这不起作用时,我测试并发现 VBS2 程序使用的是“消息”对象的不同实例,我在其中存储变量,而我的应用程序正在访问该对象。

我想做的是让我的应用程序访问 VBS2 访问的对象的相同实例。我已经尝试了一点

但由于某种原因,似乎仍然使用了两个实例。

我将非常感谢任何和所有的帮助,并补充说 C++ 对我来说是一门新语言,所以请温柔一点。:)

谢谢,米

0 投票
2 回答
805 浏览

c - 使用编译指示抑制 gcc 4.2.1 警告

我想抑制由返回局部变量地址引起的 gcc 发出的特定警告。

平台:这个问题至少在 MacOSX 10.5 Snow Leopard 上存在,我还没有在 Linux 上尝试过。

如果您想知道为什么:我想在运行时将警告变成错误以停止冗长的构建过程,这样我就可以真正看到问题并被迫修复它们。

此特定代码不是错误,它是一种用于查找堆栈指针的“可移植”技术(也适用于 MSVC)。[实际上它不适用于有两个堆栈指针的安腾]

垃圾收集例程需要堆栈指针(以在挂起线程的堆栈上搜索指针)。

0 投票
2 回答
77 浏览

perl - 当我使用 warning-pragma 时,如何找出启用了哪种警告?

是否有一个命令或变量显示我使用警告编译指示时启用的所有不同警告?

0 投票
6 回答
7693 浏览

c - 在不使用编译指示的情况下禁用 C 中的结构填充

如何在不使用编译指示的情况下禁用 C 中的结构填充?

0 投票
2 回答
277 浏览

html - richfaces dataOrderedList 和自定义后端列表 [编辑:浏览器缓存 !!!]

我有一个包含此对象的支持 bean:
List<Session> sessions;

一个 Session 是一个类,它有一些标准字段,但也有:
List<Entry> 条目;

条目是一个包含多个字段但所有字段都是标准 java 对象的类。

所以它是这样的..
List<Session>
 |-Session
   |-List<Entry>
     |-Entry

我已经尝试成功地直接访问 List<Entry> 。
但是当我尝试访问 List<Session> 时,出现以下错误:

javax.faces.FacesException: javax.el.PropertyNotFoundException: /pages/console.jspx @75,109 value="#{session.sessionID}": 类 'org.apache.cata lina.session.StandardSessionFacade' 没有属性'会话ID'。

(sessionID 是 Session 类的 String 字段)

有没有什么办法解决这一问题 ??(转换器可以解决这个问题吗?)

jspx 代码是:



提前致谢 !!