小编Ale*_*lev的帖子

空枚举(enum {};)是否可移植?

class Test
{
  enum{};
  ...
};
Run Code Online (Sandbox Code Playgroud)

这个空枚举定义是否可移植?在gcc和msvc中编译.

c++

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

专门化模板类的模板化成员

可能重复:
模板化类中模板化成员函数的特化

template <class T>    
class MyClass
{
   template <int N>
   void func() {printf("unspecialized\n");}
};
template<class T>
template<>
MyClass<T>::func<0>()
{
   printf("specialzied\n");
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.是否可以专门化模板类的模板方法?

c++ templates

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

为什么我不能调用派生自的模板类的模板化方法

struct Messages
{
      template <typename V>
      static const char* message() {return "test mesage";}
};

template <int Min, class M=Messages>
struct Test: public M
{
    Test() 
    {
        M::message<int>(); //error: expected primary-expression before 'int'
    }
};

int main()
{
     Test<5, Messages> t;
}
Run Code Online (Sandbox Code Playgroud)

我怀疑这与一些相互依赖有关,比如Test的代码依赖于基类M,其方法在Test中是专用的.它是否正确?

c++ templates

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

Cmake中的可选目标

有没有办法在CMake中指定可选目标?我的意思是那些仅在明确指定它们时构建的,例如by make <target>,并且在指定时不构建make?我知道我可以使用add_custom_command()执行此操作,但我需要普通构建目标具有的所有功能

c c++ cmake

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

在hashmap/unordered_map中,当值已包含密钥时,是否可以避免数据重复

给出以下代码:

struct Item
{
    std::string name;
    int someInt;
    string someString;
    Item(const std::string& aName):name(aName){}
};
std::unordered_map<std::string, Item*> items;
Item* item = new Item("testitem");
items.insert(make_pair(item.name, item);
Run Code Online (Sandbox Code Playgroud)

项目名称将存储在内存中两次 - 一次作为Item结构的一部分,一次作为映射条目的键.是否有可能避免重复?有了大约100M的记录,这个开销变得很大.

注意:我需要在Item结构中有名称,因为我使用hashmap作为Item-s的另一个容器的索引,并且我无法访问map的键值.

c++ stl unordered-map hashmap

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

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

标签 统计

c++ ×6

templates ×2

c ×1

cmake ×1

hashmap ×1

stl ×1

unordered-map ×1