小编zba*_*rni的帖子

在Linux内核中变量名之后扭曲使用*const*

有人可以解释下面代码中实际定义的内容,以及最后的const是什么?命名变量__user__argv类型指针是否已__user创建?

const char __user *const __user *__argv
Run Code Online (Sandbox Code Playgroud)

我熟悉放置的可能性const(使指针/数据不可修改),但我从未想过上述可能性.

该片段来自内核中的此函数声明:

1593 int do_execve(const char *filename,
1594         const char __user *const __user *__argv,
1595         const char __user *const __user *__envp,
1596         struct pt_regs *regs)
Run Code Online (Sandbox Code Playgroud)

编辑:我可能不会问过我__user以前对宏的了解.尽管如此,它并不完全与重复,因为那里没有讨论定义变量的实际类型.

c linux const

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

访问模板外部的模板(类)参数

是否可以在模板外部访问类模板参数的功能?我尝试了以下但没有成功:

class A  {
public:
    void func () { std::cout << ("A called"); }
};

template<class T>
class tClass {
public:
    T* operator->() {
        return mem;
    }

    T* operator*() {
        return mem;
    }

    const T* operator->() const {
        return mem;
    }

    const T* operator*() const {
        return mem;
    }

private:
    T* mem;
};
Run Code Online (Sandbox Code Playgroud)

在主要:

tClass<A>* t = new tClass<A>();
t->func();
Run Code Online (Sandbox Code Playgroud)

我得到以下编译器错误:error: 'class tClass<A>' has no member named 'func' 不重写->操作符返回指向模板参数的指针?我问,因为我看到一个非常相似的代码正在运行.我也看到了其他建议使用的答案typedef,但我不确定它在这里是如何应用的.

忽略mem现在没有初始化对象的事实.

提前致谢!

c++ templates

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

标签 统计

c ×1

c++ ×1

const ×1

linux ×1

templates ×1