问题标签 [sunstudio]
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.
c++ - 如何使“最后一条语句应返回值”警告静音?
Sun Studio 12.1 打印警告
经常用于这样的功能:
很明显,我们不需要函数末尾的返回值。我犹豫插入类似的东西
在这样一个函数的末尾,因为无论如何它都是死代码。对于更复杂的返回类型,实际上可能很难构造一个“合理的”虚假值。
消除这种警告的推荐方法是什么?
c++ - 警告:不应使用临时变量初始化非常量引用
我从 Sun Studio 12.1 的标题中收到警告,其中包含以下代码段:
警告文字是:
虽然我知道用临时初始化非常量引用是一件坏事,但我看不出这是怎么发生的。我知道[0]
返回对向量的第一个元素的引用,它本身是临时的,但我看不出问题出在哪里。
有人可以解释
- 为什么编译器会抱怨?
- 这是一个合法的警告吗?
- 如果是,我需要改变什么?
- 如果没有,我怎样才能优雅地让它静音?
sunstudio - Sun 编译器相当于 gcc 的 __sync_fetch_and_add?又名甲骨文工作室 12.2
适用于 64 位 Linux 的 Oracle (Sun) Studio 12.2 C/C++/Fortran 编译器是否具有与 gcc 中提供的 __sync_fetch_and_add 函数等效的功能?我似乎无法在 Sun 文档中找到 intel atomics 的包装代码,也无法在我的 Sun Studio 安装中找到 .h 文件。这意味着要么我不擅长搜索,要么它可能不存在,不确定是哪个。
我碰巧需要使用 Sun C/C++ 编译器访问 intel i7 上可用的任何原子硬件功能,例如 Test-and-set、Compare-and-swap、Fetch-and-foo。
这很复杂,因为我不是汇编程序员,而且这是 Sun 编译器而不是 GCC 编译器,所以从 gcc 的开源实现中复制 asm 代码不一定能工作,最后它是 64 位编译器和硬件,因此很容易找到的 32 位示例不一定能在 64 位系统上正常工作。
背景:目的是实现一些需要这些特定硬件原子的多核并发程序。
谢谢阅读。
c++ - VC++ 和 Sun Studio 中的字段初始化顺序、签名比较和未使用的变量的警告
我希望为以下 C++ 编译问题和相应的编译器启用警告:
未使用的变量——Sun Studio CC
例子:
void m() { int i = 10; }
有符号到无符号比较 - VC++和Sun Studio CC
例子:
if ((unsigned) 10 < -1);
错误的字段初始化顺序 - VC++和Sun Studio CC
例子:
class A { int i, j; A() : j(0), i(0) {} };
所有这些都被 GCC 捕获,我想在 VC++ 和 Sun Studio 中启用这些。
编辑:在 VC++ 上启用有符号到无符号比较警告之外,所有其他选项似乎都不可能。
linker - 我在哪里可以找到 Sun Solaris Studios 12.2 中的链接器 (ld)?
目前,我将 SPARC 机器上预安装的链接器用于链接目的,位于以下目录中:
我想用 Sun Studios Compiler 12.2 编译我的应用程序,所以我也想使用这个包附带的链接器。但是,在检查 Sun Studios 的 bin 目录时,我只能找到 ac 编译器(cc),但没有 ld(链接器)。任何人都知道它去了哪里以及如何调用它?
非常感谢,迈克
solaris - Sun Studio 11 for Solaris 8。Oracle 站点没有它(死链接)
我特别需要 Sun Studio 11,因为它是 Solaris 8 支持的最后一个。Oracle 站点根本没有它。它似乎是一个错误,并绕着圈子转。即 Oracle 站点说“Sun 链接已失效,请访问 Oracle 站点”,并且 Oracle 站点链接到同一个旧 Sun 站点。
http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-138519.html
当然,瓶颈是 Solaris 8,所以如果 Sun Studio 12 安装并使用它。我非常愿意。
c++ - 使用 Solaris CC 的 std::BinaryPredicate 问题
我在使用 Sun Studio 编译器的 Solaris 上遇到问题。它似乎与 libCstd 有关。
考虑以下代码:
我得到的错误信息是:
但是当我使用引用而不是值时,它编译得很好:
使用 g++ 编译都可以。有谁知道发生了什么?谢谢 !
c++ - Sun Studio C++ 中模板类的模板友元失败
我在 Sun Studio 中为模板类提供模板朋友时遇到问题。该代码可以使用 GNU G++(4.4.1 和 4.4.3)正常编译,但使用 Sun Studio C++(5.9 SunOS_sparc 补丁 124863-01 2007/07/25)失败。
这是一个最小的例子:
当我尝试通过 编译它时CC -c -o t3.o t3.cpp
,我收到以下错误消息:
这是 Sun Studio C++ 的问题,还是无效的 C++(仍然被 GCC 接受并且没有给出警告-Wall -pedantic
)?有没有一种优雅的方法来更改代码,使其符合标准并在 GCC 和 Sun Studio 下编译?
提前非常感谢!
c++ - 在共享库中填充全局函数指针(Solaris、Sun Studio)
我正在围绕 Fortran 95 库创建一个小型 C++ 包装共享库。由于 Fortran 符号包含.
在符号名称中,因此我必须使用dlsym
将 Fortran 函数加载到 C++ 函数指针中。
目前,我在头文件中有一堆全局函数指针:
我将它们填充到相应的 C++ 文件中:
问题:
- 如果我这样做,这些指针何时填充?
- 我可以假设它们被加载到我加载这个库的可执行文件中吗?
- 特别是,我可以在我的可执行文件或其他库中静态创建的对象中使用这些函数吗?或者这是否受到静态初始化命令失败的影响?
- 如果上述方法不正确,那么填充这些指针以便它们可以在可执行文件和其他库中的静态对象中使用的最优雅的方法是什么?
我在 Solaris 上使用 Sun Studio 编译器,如果这会有所不同,但我也对 Linux 上的 GCC 解决方案感兴趣。
c++ - 在 Solaris 上构建 Boost
Boost 会在 Solaris 上完全构建吗?
在我去支付支持合同以将 Sun Studio 12.2 修补到最新版本之前,我想知道是否有人在这方面取得了成功(特别是 Proto/Spirit)。我遇到了一些错误,一些错误看起来已经在补丁中得到解决,但是支付 Oracle 的支持费用并不便宜,所以我宁愿希望它在我这样做之前能正常工作。
现在,我只是尝试在 Solaris 上使用 cpp-netlib 并使用 Boost Property Tree 对通过 HTTP 获取的一些 JSON 进行解码。它在 Mac OS X 上运行良好——所以我希望我可以在 Solaris 上使用相同的代码。