小编Pub*_*bby的帖子

用户定义的文字可以将函数作为参数吗?

函数可以与用户定义的文字一起使用吗?

如果是这样,可以做些什么恶作剧?这合法吗?

void operator "" _bar(int (*func)(int)) {
  func(1);
}

int foo(int x) {
  std::cout << x << std::endl;
}

int main() {
  foo(0);    // print 0
  foo_bar;   // print 1
}
Run Code Online (Sandbox Code Playgroud)

c++ user-defined-literals c++11

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

SSE将寄存器设置为0.0和1.0的最佳方法是什么?

我正在做一些sse vector3数学.

通常,我将矢量的第四位设置为1.0f,因为这使我的大部分数学工作,但有时我需要将其设置为0.0f.

所以我想改变像:(32.4f,21.2f,-4.0f,1.0f)到(32.4f,21.2f,-4.0f,0.0f)

我想知道这样做的最佳方法是:

  1. 转换为4个浮点数,设置第4个浮点数,然后发送回SSE
  2. xor自己的寄存器,然后做2 shufps
  3. 用1.0f完成所有SSE数学运算,然后将变量设置为完成时应该是什么.
  4. 其他?

注意:当我需要更改它时,向量已经在SSE寄存器中.

c math assembly sse vector

3
推荐指数
1
解决办法
3318
查看次数

mremap是否适用于malloc?

void * mremap(void *old_address, size_t old_size , size_t new_size, unsigned long flags);
Run Code Online (Sandbox Code Playgroud)

与malloc()兼容?

GCC(C++)并使用Linux.

谢谢.

c c++ linux memory malloc

3
推荐指数
1
解决办法
328
查看次数

对象调用一个对象

有人可以向我解释(*this)指针并演示它如何被用作调用同一类的另一个对象的对象.我不明白的是你如何在同一个变量名的不同2个不同对象的成员函数中引用两个数字.例如,乘以两个数字.

a.Multiply(b);
//....
Numbers::Numbers Multiply(Numbers auggend)
{
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers class

3
推荐指数
1
解决办法
129
查看次数

枚举类型的自定义派生(读取,显示)

假设我有这种枚举类型:

data TVShow = BobsBurgers | MrRobot | BatmanTAS
Run Code Online (Sandbox Code Playgroud)

我想定义为实例Read,并Show与以下行为:

show BobsBurgers = "Bob's Burgers"
show MrRobot = "Mr. Robot"
show BatmanTAS = "Batman: The Animated Series"

read "Bob's Burgers" = BobsBurgers
read "Mr. Robot" = MrRobot
read "Batman: The Animated Series" = BatmanTAS
Run Code Online (Sandbox Code Playgroud)

有很多在这些定义重复的,所以我想每种类型的构造函数的字符串相关联,然后生成ShowRead自动从这些关联.这样的事情可能吗?

haskell template-haskell deriving

3
推荐指数
1
解决办法
345
查看次数

如果抛出std :: bad_alloc,new会将指针设置为NULL吗?

如果失败,我知道做一个new(std::no_throw)会设置指针NULL.我也知道普通newstd::bad_alloc在失败时抛出异常.

如果它抛出,法线new还会设置指针NULL吗?或者我应该将其设置NULLcatch()块?

c++ null allocation new-operator bad-alloc

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

模板:静态类型还是动态?

C++被认为是静态类型的.我明白那个.

我不明白这是如何适用于模板的.

下面是一个在编译时无法确定的类型的简单示例:

template <typename... t>
struct foo {
  using type = typename foo<t..., t...>::type;
};

foo<int>::type x; // type of x cannot be determined without running meta-program
Run Code Online (Sandbox Code Playgroud)

我认为有些情况下如果不解决暂停问题就无法检测到类型错误.

所以我的问题是,为什么不考虑动态输入模板?

c++ templates type-systems

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

XCB STRING和WM_NAME未定义

在哪里STRINGWM_NAME界定?

我的xcb_atom.h文件只包含3个函数声明,当我希望它看起来像这样:http://www.opensource.apple.com/source/X11libs/X11libs-40/xcb-util/xcb-util-0.3.3/原子/ xcb_atom.h

我也有一个xcb_ewmh.h包含类似原子的文件,但我找不到任何文档.

我该如何解决?

c c++ x11 xcb

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

有人可以解释这里发生了什么(类和构造函数/析构函数)?

#include <iostream>
#include <string>

using namespace std;

class Person
{
    string name;

    public:
        Person():name("")
        {
            cout << "Person default ctor\n";
        }
        Person(const string& name_in):name(name_in)
        {
            cout << "Person string ctor: " << name << "\n";
        }
        ~Person()
        {
            cout << "Person dtor: " << name << "\n";
        }
        string get_name()
        {
            return name;
        }
};

class Professor:public Person
{
    int office;

    public:
        Professor(const string& name_in, int office_in):Person(name_in), office(office_in)
        {
            cout << "Professor string ctor: " << get_name() << endl;
        } …
Run Code Online (Sandbox Code Playgroud)

c++

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

视觉未声明的标识符?

我正在使用visual studio 2010,当我做类似的事情时

for(int i = 0, j = 0; i < 10; i++)
{
        if(m_Var == 1)
            j++;
}

if(j == 0)//This line errors undeclared identifier
    DoSomething();
Run Code Online (Sandbox Code Playgroud)

j在for循环中声明了为什么它会出错"未声明的标识符"?

另一个例子是

for(int i = 0; i < 10; i++)
{
        m_Var1++;
}

for(i = 0; i < 200; i++)//This line errors undeclared identifier
{
        m_Var2++;
}
Run Code Online (Sandbox Code Playgroud)

那个代码错误,即使它是在for循环中声明的,但为什么呢?有没有办法做到这一点,而不必i在循环之前声明,但在循环中声明它,而不是像上面的例子?

c++ visual-c++

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