簡體   English   中英

C++ 如果我知道幾個可能的確切類型,我應該使用什么類型?

[英]C++ what type should I use if I know the exact type from a few possible?

希望你能幫助我理解。 我有一個 class,它定義了一個緩沖區:

typedef std::variant<signed char, unsigned char, short, unsigned short, int, unsigned int, float> BufferData;

struct BufferAttribute {
  unsigned int index;
  int size = 4;
  char format = ATTRIBUTE_FORMAT::FLOAT;
  bool normalized = false;
  int stride = 0;
  int offset = 0;
  std::vector<BufferData> data;
  std::string name;
};

如您所見,我有一個定義格式的char ,所以將來我會知道確切的數據格式。 但至於數據,我使用了一個變體,這讓我擔心訪問者的表現。 我可以使用什么類型使它更快或更好? 還是您認為Variant是一個不錯的選擇?


PS 我擔心在我的游戲應用程序中實時處理來自這個緩沖區的數千個數字。

如果您擔心性能,則必須在用例中對其進行衡量。 一般陳述性能往往是錯誤的,或者可能會隨着下一個編譯器版本和/或硬件一代而過時。

這里已經分析了 std::variant 的一般性能。

如果這適用於您是有問題的。 您必須確保BufferAttribute中的“std::variant”實際上是您的熱點。 您可以使用perfvTune等工具找到熱點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM