小编bit*_*ise的帖子

为什么标准C++库使用全部小写?

只是好奇为什么C++标准库使用小写和下划线代替camelCasePascalCase命名约定.

就个人而言,我发现后者在输入代码时更容易处理,但有没有合理的理由使用前者?

c++ coding-style lowercase c++-standard-library

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

是否应该在赋值时调用构造函数?

VS2015中以下代码的输出是"构造函数".

由于缺少赋值运算符,它不应该无法编译吗?

struct A { };

struct B {
    B(){}
    B(const A& a) {
        cout << "constructor" << endl;
    }

    //B& operator=(const A& a) {
    //  cout << "assignment operator" << endl;
    //  return *this;
    //}
};

int main() {
    A a;
    B b;
    b = a;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

25
推荐指数
3
解决办法
2019
查看次数

为什么eglMakeCurrent()失败了EGL_BAD_MATCH?

我正在使用opengl/egl为Android开发.我的应用程序需要第二个上下文来从第二个线程加载纹理.

我的代码在android 2.3上工作正常,但是当我在4.0.3 android设备或模拟器上尝试代码时,eglMakeCurrent()在EGL_BAD_MATCH中失败.

第二个上下文和它的像素缓冲区的初始化也都可以正常工作,所以我不知道从哪里开始寻找这个错误.

这是初始化代码:

ANativeWindow *window = (ANativeWindow*)displaySurface;

EGLint dummy, format;

display = eglGetDisplay(EGL_DEFAULT_DISPLAY);

eglInitialize(display, 0, 0);

EGLint contextAttribs[] =
{
    EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE
};

const EGLint configAttribs[] =
{
    EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
    EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
    EGL_BLUE_SIZE, 8,
    EGL_GREEN_SIZE, 8,
    EGL_RED_SIZE, 8,
    EGL_ALPHA_SIZE, 8,
    EGL_BUFFER_SIZE, 32,
    EGL_DEPTH_SIZE, 24,
    EGL_NONE
};

EGLint numConfigs;
EGLConfig config;

eglChooseConfig(display, configAttribs, &config, 1, &numConfigs);
eglGetConfigAttrib(display, config, EGL_NATIVE_VISUAL_ID, &format);
ANativeWindow_setBuffersGeometry(window, 0, 0, format);

surface = eglCreateWindowSurface(display, config, window, NULL);
if(surface == NULL)
    Trace("error creating window surface: …
Run Code Online (Sandbox Code Playgroud)

c++ android opengl-es

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

用于string_view的C++ 17运算符""?

将C++ 17包含文字后缀const char*std::string_view转换?

auto str = "asdf"s;
Run Code Online (Sandbox Code Playgroud)

str上述陈述中的类型是std::string或是std::string_view

c++ c++17

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

chrome extension- manifest version 2 _locales问题

我正在尝试为我的扩展程序更新我的清单版本,但它给了我这个问题:

指定了默认语言环境,但缺少_locales子树.

这是我的manifest.json文件,任何人都可以告诉我问题在哪里,我该怎么办?

{
  "name": "Selected Text", 
  "version": "0.1", 
  "manifest_version": 2,
  "description": "Selected Text and some changes", 
  "default_locale":"en", 
  "browser_action": { 
    "default_title": "S. Text", 
    "default_icon": "online.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "tabs", 
    "chrome://favicon/", 
    "http://*/*",  
    "https://*/*" 
  ],
  { 
    "matches": ["http://*/*"], 
    "js": ["selection.js"], 
    "run_at": "document_start", 
    "all_frames": true
  }
}
Run Code Online (Sandbox Code Playgroud)

manifest google-chrome-extension

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

在Android NDK项目中使用我自己的预建共享库

我发现这篇文章几乎是我需要的:

如何使用Android NDK编译静态库?

基本上,我的项目中有一些部分从未更新,所以我试图避免在每次更新Android.mk文件时添加它们.

上面的答案显示了如何将一些代码内置到一个单独的静态库中,但是当我尝试在单独的Android.mk文件中预构建上述代码时,它不会自行构建.这看起来有点多余......如果我必须同时构建它们,那么制作单独的静态库有什么意义呢?

如果我在单独的项目中更改Android.mk,请阅读:

包含$(BUILD_SHARED_LIBRARY)

并在主项目中包含它:

LOCAL_SHARED_LIBRARIES:= libMyaccessories.so

然后我得到未解析的(函数名称)引用,可能是因为它找不到共享库(在调用路径中)

任何人都可以帮我解决这个问题吗?

c++ android build android-ndk

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

Android NDK Mutex

我正在尝试使用Android Native Development Kit进行多线程处理,因此我需要在C++端使用互斥锁.

使用Android NDK创建和使用互斥锁的正确方法是什么?

c++ android mutex android-ndk

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

返回功能指向自我的指针?

下面的代码不能编译..但是有没有办法让函数指针返回另一个与自身等效的函数指针?

typedef FunctionPtr (*FunctionPtr)(int, int);

FunctionPtr Second(int, int);
FunctionPtr First(int, int)
{
    // do something
    return Second;
}

FunctionPtr Second(int, int)
{
    // do something
    return First;
}

int main()
{
    FunctionPtr a = First(1, 2);
    FunctionPtr b = a(2, 3);
    FunctionPtr c = b(4, 5);
    c(5, 6);
}
Run Code Online (Sandbox Code Playgroud)

c++ function-pointers

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

如何检测模板参数是否为 std::initializer_list

在以下示例中,最后一行失败,因为转换运算符JSON必须在两种可能性之间进行选择:

  1. std::vector<int>::operator=(std::vector<int>&&)
  2. std::vector<int>::operator=(std::initializer_list<int>)

我怎样才能限制JSON::operator T()它忽略initializer_list过载?

struct JSON
{
    using StorageType = std::variant<
        int,
        float,
        std::string,
        std::vector<int>,
        std::vector<float>
    >;
    
    StorageType storage;

    template<class T>
    operator T() const {
        return std::get<T>(storage);
    }
};

int main(int argc, char* argv[])
{
    const JSON json;
    std::vector<int> numbers;
    numbers = json; // more than one operator '=' matches these operands

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

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

C++为什么将左值传递给移动构造函数适用于模板?

我有这个代码,它不编译,这是预期的.

这是错误:an rvalue reference cannot be bound to an lvalue

class SomeData
{
public:
    vector<int> data;

    SomeData()
    {
        cout << "SomeData ctor" << endl;
        data.push_back(1);
        data.push_back(2);
        data.push_back(3);
    }

    SomeData(const SomeData &other)
    {
        cout << "SomeData copy ctor" << endl;
        data = other.data;
    }

    SomeData(SomeData &&other)
    {
        cout << "SomeData move ctor" << endl;
        data = move(other.data);
    }

    ~SomeData()
    {
        cout << "SomeData dtor" << endl;
    }

    void Print() const
    {
        for(int i : data)
            cout << i;

        cout << …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++11 visual-studio-2012

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