我有一個很小的代碼位從做這個庫:奇怪的#define模板中?
#define VMMLIB_ALIGN(var) var
template< size_t M, typename T = float >
class vector
{
...
private:
// storage
VMMLIB_ALIGN(T array[ M ]);
};
而且你可以通過做
//(vector<float> myVector)
myVector.array;
沒有括號或任何調用它。
什麼?
在閱讀答案後,看起來我應該做更多的期待。 XCode的「跳轉到定義」只給我一個結果。搜索庫給了我另一個:
#ifndef VMMLIB_CUSTOM_CONFIG
# ifndef NDEBUG
# define VMMLIB_SAFE_ACCESSORS
# endif
# define VMMLIB_THROW_EXCEPTIONS
# ifdef VMMLIB_DONT_FORCE_ALIGNMENT
# define VMMLIB_ALIGN(var) var
# else
# ifdef __GNUC__
# define VMMLIB_ALIGN(var) var __attribute__((aligned(16)))
# elif defined WIN32
# define VMMLIB_ALIGN(var) __declspec (align (16)) var
# else
# error "Alignment macro undefined"
# endif
# endif
#endif
這提供了不同的設置,取決於它建立的系統。
無論如何,謝謝。無法相信我對會員訪問感到困惑!
myVecetor如何聲明?假設它是你的類模板的一個實例,你顯示的語句是合法的,但不是特別有用,當然不是對任何東西的「調用」。 – 2010-09-15 13:29:46
哇......我猜Objective-C真的讓我頭腦中毒了。我沒有認出伊娃的存取......謝謝你們。 – 2010-09-15 13:50:13
我因爲愚蠢而被壓低了!?哇謝謝。就好像'#define'和'templates'是所有編程語言的基礎。 – 2010-09-16 13:40:37