小编Dre*_*ann的帖子

如何在ubuntu上编译curlpp?

下面是使用curl的简单test.c代码:

#include <stdio.h>
#include <curl/curl.h>
int main(){        
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为了编译此代码,我使用:

gcc test1.c -lcurl -o test1
Run Code Online (Sandbox Code Playgroud)

对于test1.c,上面的编译是正确的。现在我想使用 C++ 库(curlpp)编写一些代码,然后编译它。

#include <iostream>
#include <curlpp/cURLpp.hpp>
#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>
int main(){
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为了编译这段代码,我尝试了:

g++ test2.cpp -lcurl -o test2
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

fatal error: curlpp/cURLpp.hpp no such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

这个公式不正确。问题是如何编译第二个代码 - test2.cpp?

c++ linux curl compilation

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

islower() 适用于“!= false”,但不适用于“== true”

因此,我编写了一个基本程序,用于检查字符串中的小写元音并显示找到的数量。

我一开始用的是这个:

for (char ch : str)
    {
        if (islower(ch) == true && isVowel(ch) == true) //isVowel is a function that
            strCount++;                                 //I made
    }
Run Code Online (Sandbox Code Playgroud)

我的程序不会增加计数器,但是当我将其更改为:

for (char ch : str)
    {
        if (islower(ch) != false && isVowel(ch) == true)
            strCount++;
    }
Run Code Online (Sandbox Code Playgroud)

它立即开始工作。为什么?不

if (islower(ch) != false)
Run Code Online (Sandbox Code Playgroud)

if (islower(ch) == true)
Run Code Online (Sandbox Code Playgroud)

做完全相同的事情?

c++ comparison-operators

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

LNK2005(已定义)无法找到错误

我有一个似乎是一个常见的问题,但我似乎无法在我的代码的上下文中解决它.我最近开始上课,我已经被投入C++和OpenGL而没有C++的先前知识,所以请对我很轻松.这是我的3个文件,用于打开OpenGL窗口; 但是我遇到了一个不错的LNK2005错误:

错误LNK2005:"public:static unsigned int JWindow :: id"(?id @ JWindow @@ 2IA)已在Application.obj X中定义:\ School\comp2501\COMP2501Tutorial1\COMP2501Tutorial1\Main.obj COMP2501Tutorial1

我似乎无法找到我重新定义的东西给我这个错误.

main.cpp中

#include <windows.h>       // Standard header for MS JWindows applications
#include <freeglut.h>
#include "Application.h"

#define KEY_ESCAPE 27

static GLfloat lightPos[] = { 1.0, 1.0, 1.0, 0.0 };

void drawCube(GLdouble x0, GLdouble x1, GLdouble y0, GLdouble y1, GLdouble z0, GLdouble z1) {/**/}

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

    JWindow::create(640, 480, "Tutorial 1", 45.0f, 0.1f, 500.0f);

    // initialize and run program
    glutInit(&argc, argv);                                      // GLUT initialization …
Run Code Online (Sandbox Code Playgroud)

c++ include lnk2005

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

为什么clone方法总是返回一个指针?

我正在阅读一些克隆c ++实现,它似乎总是定义为

Clonable* clone();
Run Code Online (Sandbox Code Playgroud)

我想知道为什么总是返回一个指针; 我可以定义一个克隆来返回一个Clonable对象吗?

c++

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

无法访问私有成员 - template和std :: unique_ptr

我有以下代码:

#include <memory>

template<typename T, size_t Level>
class Foo
{
    friend class Foo<T, Level + 1>;
    typedef std::unique_ptr<T> ElmPtr;
    typedef std::unique_ptr<Foo<ElmPtr, Level - 1>> NodePtr;        

    public:
    Foo() {
        // no errors
        auto c = children;
    }

    Foo(int n) {
        // !!! compiler error !!!
        auto c = children;
    }

    std::array<NodePtr, 4> children;            
};

template<typename T>
class Foo<T, 0>
{
    friend class Foo<T, 1>;

    public:
    Foo() {}
};

int main()
{
    Foo<int, 1> foo1;
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误C2248:'std :: unique_ptr <_Ty> :: …

c++ templates unique-ptr c++11

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

UnspecifiedBoolType的类型?关于typedef,成员函数指针和转换运算符

我想了解下面的代码.实际的类型是UnspecifiedBoolType什么?

我糊涂了.有谁可以向我解释一下?提前致谢!

template <typename T>
class MyOptional
{
public:    
    MyOptional() : valueIsSet(false) {}
    MyOptional(const T& value) : valueIsSet(true), value(value) {}

    // Conversion to bool. This is a variant of the "safe bool idiom".
    typedef T MyOptional<T>::*UnspecifiedBoolType;
    inline operator UnspecifiedBoolType() const;

    ...

private:
    bool valueIsSet;
    T value;
};

...

template<typename T>
MyOptional<T>::operator MyOptional<T>::UnspecifiedBoolType() const
{
    return valueIsSet ? &MyOptional<T>::value : 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ typedef

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

内核 CUDA 中的 C++ 代码?

据我所知,CUDA 支持 C 和 C++。但是我不能在我的内核中使用 C++。

我尝试这样一个简单的例子

__global__ void simple(){
     cout<<"abc";
}
Run Code Online (Sandbox Code Playgroud)

那是错误。但如果我改变printf("abc");它是对的。

你能帮我解释一下吗?非常感谢!

c++ cuda

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

Cap'n Proto 是否支持分隔消息

Cap'n Proto支持分隔消息吗?

我的目标是将多条消息写入文件管道并在写入时实时读取。

所以...

  1. 消息需要以某种方式分隔。

  2. 并且解析器必须能够检测不完整的消息并等待。

c++ java protocol-buffers capnproto

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

如何让gcc警告缩小功能参数

下面的程序涉及一个隐式缩小的函数参数.信息可能会丢失.

void func(short) {}

int main()
{
    int i = 0x7fffffff;
    func(i);
}
Run Code Online (Sandbox Code Playgroud)

如果我使用gcc编译这个程序(无论是C还是C++),-Wall -Wextra我都不会收到任何警告!

当然,这种行为通常被认为是不合需要的.

是否有一些gcc命令行参数会在发生这些缩小的转换时触发诊断消息?

c c++ gcc compiler-warnings

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

Where is the fold expression ()?

Reference fluentCPP article

The below code explanation says that this structure inherits from several lambdas, can be constructed from those lambdas, and folds over the using expression.

template<typename... Lambdas>
struct overloaded : public Lambdas...
{
    explicit overloaded(Lambdas... lambdas) : Lambdas(lambdas)... {}

    using Lambdas::operator()...;
};
Run Code Online (Sandbox Code Playgroud)

My doubt is that parentheses i.e () indicate a c++17 fold expression but I don't see any enclosing parentheses around the using statement. How will it fold?

c++ fold-expression c++17

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