小编OMG*_*chy的帖子

在GNU C宏envSet(名称)中,(void)""名称是什么意思?

我今天遇到了这种语法,无法理解其含义:

// Uses the GNU C statement expression extension
#define envSet(name) ({ \
static int initialised; \
static bool set; \
(void) "" name; \
if (!initialised || !g_cacheEnv) { \
    const char *value = getenv(name); \
    set = value != NULL; \
    initialised = true; \
} \
set; \
})
Run Code Online (Sandbox Code Playgroud)

我无法理解的具体路线是:

(void) "" name; \
Run Code Online (Sandbox Code Playgroud)

有人可以对此有所了解吗?

c macros gcc c-preprocessor

65
推荐指数
3
解决办法
2147
查看次数

多线程与多处理

我是这种编程的新手,需要你的观点.

我必须构建一个应用程序,但我无法让它足够快地进行计算.我已经尝试过英特尔TBB,它很容易使用,但我从未使用过其他库.

在多处理器编程中,我正在阅读有关多线程的OpenMP和Boost,但我不知道它们的优缺点.

在C++中,与多处理器编程相比,何时多线程编程是有利的,反之亦然?哪个最适合于繁重的计算或启动许多任务......?当我们构建使用它们设计的应用程序时,它们的优缺点是什么?最后,哪个库最适合使用?

c++ parallel-processing multithreading multiprocessing

30
推荐指数
3
解决办法
5万
查看次数

未定义的类构造函数引用,包括.cpp文件修复

我遇到的问题是,当我调用我创建的类的构造函数时,我得到以下错误.

main.cpp:20:未定义引用`StaticObject :: StaticObject(Graphics*,sf :: String,
sf :: Vector2)'

这个问题可以"修复",在main.cpp中为.cpp文件添加一个include,就像这样.

...
#include "GameObjects/StaticObject.cpp"
...
Run Code Online (Sandbox Code Playgroud)

虽然这解决了这个问题,但这似乎是一个糟糕的解决方案,并且违背了我之前所说的.有没有其他方法可以解决这个问题?我正在使用带有g ++的Netbeans 7.3来编写/编译这个程序.以下是相关代码.

main.cpp中

...

#include <SFML/Graphics.hpp>
#include "Graphics/Graphics.hpp"
#include "GameObjects/StaticObject.hpp"

int main(int argc, char** argv) {

    //SETUP
    Graphics graphics;

    background = new StaticObject(&graphics, "Data/Images/BackgroundPlaceholder.png",  sf::Vector2f(0,0));

...
Run Code Online (Sandbox Code Playgroud)

main.hpp

...

#include <SFML/Graphics.hpp>
#include "GameObjects/StaticObject.hpp"

...

// Objects
StaticObject *background;
...
Run Code Online (Sandbox Code Playgroud)

StaticObject.hpp

#include <SFML/Graphics.hpp>
#include "../Graphics/Graphics.hpp"

class StaticObject{
public:
    StaticObject();
    StaticObject(Graphics *_graphics, sf::String texture_filename, sf::Vector2f _position);
    StaticObject(const StaticObject& orig);
    virtual ~StaticObject();
private:
    // The sprite stores the position …
Run Code Online (Sandbox Code Playgroud)

c++ debugging netbeans g++

23
推荐指数
2
解决办法
7万
查看次数

F#中的System.Console.WriteLine()vs printfn

F#中以下两个语句之间有什么区别?它们相互比较有什么优点或缺点(不包括明显的语法差异)?

我知道WriteLine()是.NET的一部分,但不明白它可能带来什么影响.

示例代码:

printfn "This is an integer: %d" 5
System.Console.WriteLine("This is an integer: {0}" , 5)
Run Code Online (Sandbox Code Playgroud)

.net f#

19
推荐指数
2
解决办法
1万
查看次数

警告C4316:堆上分配的对象可能未对齐16

重要信息:

  • 开发操作系统:Windows 8.1 64位
  • 目标操作系统:Windows 8.1 64位
  • IDE:Visual Studio 2013 Professional
  • 语言:C++

问题:

通过IDE编译我的静态库项目时收到以下警告:

warning C4316: ... : object allocated on the heap may not be aligned 16
Run Code Online (Sandbox Code Playgroud)

我可以简单地忽略这个警告......但我认为这是有原因的,并且至少要了解它意味着什么以及它将来会产生什么影响.

我相信这行代码与问题有关,在我的Win32窗口包装类中调用它:

m_direct3D = new Direct3D(this);
Run Code Online (Sandbox Code Playgroud)

m_direct3D是指向我的Direct3D包装类的指针.

这是包装器的头文件(我承认它需要修剪):

#pragma once

// Windows
#include <d3d11.h>
#include <DirectXMath.h>

// Standard
#include <stdint.h>
#include <vector>

// JGlib
#include "Window.h"

namespace JGlib
{
    namespace Graphics
    {
        class Direct3D
        {
        public:
            // Construtor and destructor
            Direct3D(const JGlib::Graphics::Window* window);
            ~Direct3D();

            // Public methods
            void Initialise();
            void …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors visual-studio-2013

17
推荐指数
4
解决办法
1万
查看次数

插入制表符空格以在HTML/CSS中垂直对齐文本

我不确定如何使用HTML和CSS的组合获得以下行为:

foo    = this
foobar = bit
goso   = needs
etcetc = aligning
Run Code Online (Sandbox Code Playgroud)

现在我可以在需要的地方插入空格(就像我上面所做的那样),但我很确定必须有一种方法可以"自动"执行此操作.

我知道我可以用表来做这件事,但我不愿意.有没有其他方法这样做?

我的问题归结为:我如何使用HTML/CSS以与办公套件中的选项卡类似的方式自动垂直对齐文本.

这是一个上下文示例:

<p><span class="a">foo</span> <span class="b">=</span> <span class="c">"abcDeveloper"</span></p>
<p><span class="a">bar</span> <span class="b">=</span> <span class="c">"123"</span></p>
<p><span class="a">foobar</span> <span class="b">=</span> <span class="c">"dfg"</span></p>
<p><span class="a">foobarstar</span> <span class="b">=</span> <span class="c">"456"</span></p>
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望b类中的文本垂直对齐.

先感谢您!

html css

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

typedef void FOO与#define FOO的含义在函数签名中无效

在浏览一些大量混合C和C++的源代码时,我遇到了以下内容(稍加修改以保护公司的工作,其含义保持不变):

/*
 * Typedefs of void are synonymous with the void keyword in C,
 * but not in C++. In order to support the use of MY_VOID
 * in place of the void keyword to specify that a function takes no
 * arguments, it must be a macro rather than a typedef.
 */
#define MY_VOID void
Run Code Online (Sandbox Code Playgroud)

之间有什么区别typedef void MY_VOID,并#define MY_VOID void在此特定背景?


我不相信这是这个问题的重复,因为它特别询问了关于功能签名的含义,而不是更为一般的"有什么区别".

c c++ typedef c-preprocessor

13
推荐指数
2
解决办法
775
查看次数

constexpr标准仿函数的正确用法是什么?

请使用以下代码:

#include <iostream>
#include <functional>

template <template<typename> class Op>
auto applyOp(const uint8_t lhs, const uint8_t rhs) {
    constexpr Op<uint8_t> op;

    return op(lhs, rhs);
}

int main() {
    std::cout << +applyOp<std::bit_and>(19, 180) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

使用时g++,这个编译并运行得很好.但是会clang++产生错误:

test.cpp:5:27: error: default initialization of an object of const type 'const bit_and<uint8_t>' (aka 'const bit_and<unsigned char>') without a user-provided default constructor
    constexpr Op<uint8_t> op;
                          ^
                            {}
test.cpp:11:19: note: in instantiation of function template specialization 'applyOp<std::bit_and>' requested here
    std::cout << +applyOp<std::bit_and>(19, 180) …
Run Code Online (Sandbox Code Playgroud)

c++ templates language-lawyer constexpr c++14

12
推荐指数
1
解决办法
504
查看次数

目标文件上下文中的LLVM虚拟部分是什么?

在查看LLVM源代码中的错误修复时,我遇到了"虚拟部分"一词,并想知道它的含义.

我尝试使用谷歌搜索一些不同的术语并进一步浏览源代码,但我设法发现的是,每个目标文件格式的isSectionVirtual成员函数的实现似乎表示如果一个部分没有内容(例如.bss,则该部分是虚拟的)部分,但源代码清楚地表明这是两个不同的概念).实现方式因所涉及的特定对象格式而异.

我对理解目标文件的内部结构还是比较陌生的,所以我不确定这是LLVM还是LLVM之外的更一般的概念.

有人可以告诉我目标文件中的虚拟部分是什么吗?

compiler-construction llvm object-files

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

没有主题的 Jekyll

我正在尝试创建一个静态网站。我希望能够在不使用 PHP 或 JavaScript 的情况下进行一些简单的预处理,例如将一个页面包含在另一个页面中。

Jekyll 似乎非常适合这个,特别是考虑到它对 GitHub 页面的支持。

然而,在尝试了几个主题并试图将它们调整为我想要的之后,我发现自己与这些主题作斗争,这使它们成为障碍而不是帮助。结果,我决定尝试在没有它们的情况下工作,只使用 Jekyll 作为一个花哨的预处理器和插件平台(例如jekyll-redirect-from)。

令我惊讶的是,我找不到有关如何执行此操作、如何以及在何处放置哪些文件以生成可用站点的任何信息。感觉这应该非常简单,但到目前为止我找到的唯一途径是创建我自己的主题。这对我来说似乎太过分了。

TL; 博士

如何在不使用主题的情况下创建 Jekyll 站点?我在哪里可以找到关于我需要什么文件、在哪里、需要在其中包含什么等方面的信息?

jekyll jekyll-theme

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