小编Alf*_*aix的帖子

如何使Visual Studio显示“自动”类型

因此,当我在VS2015中将auto关键字与简单的内容一起使用时,如下所示:

如您所见,它显示了变量的类型,但是,当我尝试更复杂的操作(或在另一个文件中定义?)时,它却吓了一跳,并给了​​我一些不太有用的信息:

尽管VS仍然能够确定top的类型:

因此,我想知道是否有一种方法可以使这个出色的IDE在其他地方显示那些复杂/定义的类型?

c++ visual-studio auto c++11 visual-studio-2015

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

为什么 clang 要求在模板中调用函数之前先声明该函数?

我有以下代码示例(可在coliru在线获取):

#include <iostream>
#include <utility>

struct Bar {
    int a;
};

template <class T>
void print_arg(const T& arg) {
    std::cout << arg << std::endl;    
}

std::ostream& operator<<(std::ostream& os, const Bar& b) {
    os << b.a;
    return os;
}

template <class T1, class T2>
std::ostream& operator<<(std::ostream& os, const std::pair<T1, T2>& pair) {
    os << "Pair(" << pair.first << ',' << pair.second << ")";
    return os;
}

int main()
{
    auto bar = Bar{1};
    print_arg(bar);
    print_arg(std::make_pair(bar, bar));
    print_arg(std::make_pair(bar, 1));
    print_arg(std::make_pair(0, …
Run Code Online (Sandbox Code Playgroud)

c++ g++ clang++

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

无效使用非静态成员

刚开始学习一些cpp并得到了这些东西:

#include <string>

using std::string;

class Vigenere{
    public:
        Vigenere(string key, string alphabet = "abcdefghijklmnopqrstuvwxyz");
        string encode(string message, string key = _key, string alphabet = _alphabet);
        string decode(string message, string key = _key, string alphabet = _alphabet);


    private:
        string _alphabet;
        string _key;
};
Run Code Online (Sandbox Code Playgroud)

在尝试编译时说"10 [错误]无效使用非静态数据成员'Vigenere :: _ key'";

第10行是字符串Key;

那么,是否有一种方法可以实现它,以便我可以将这些变量分别用于每个对象,同时将它们用作默认参数?

c++ oop compiler-errors

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