相关疑难解决方法(0)

我如何引用std :: sin(const valarray <double>&)?

我遇到一些valarray函数指针代码有问题:

double (*fp)(double) = sin;
valarray<double> (*fp)(const valarray<double> &) = sin;
Run Code Online (Sandbox Code Playgroud)

第一次编译,第二次编译:

error: no matches converting function 'sin' to type 'class std::valarray<double> (*)(const class std::valarray<double>&)'
Run Code Online (Sandbox Code Playgroud)

c++ functional-programming function-pointers

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

C++ 11从变量中获取std :: map value_type

有没有办法从类型的变量中获取value_typestd::map<K,V>

例如:

class Foo{
    private:
        std::map<int,double> myMap;
    public:
        void Bar(const std::map<int,double>& m)
        {
            using PairType = m::value_type; //How to enable something like this?
            std::vector<PairType> vec(m.size());
            read_ints_and_doubles(&vec, m.size()); //expects a void* (legacy lib I'm using)
        }
};
Run Code Online (Sandbox Code Playgroud)

显然我知道我可以使用std::map<int,double>::value_type,但我希望这对未来的变化是开放的.

我想到使用using MyMapType = std::map<int,double>然后只是MyMapType在任何地方使用,但我不想这样做,在我看来,有一种方法可以从变量本身获取此信息,因为这是所有静态信息,我看不到为什么我无法访问此信息.

编辑: 这个问题与建议的dup有很大不同:声明依赖于模板函数中未知类型的变量,因为我没有尝试声明任何变量,并且类型是已知的.

c++ type-traits c++11

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