У меня есть маленький кусочек кода из библиотеки, которая делает это:Странный #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's «Перейти к определению» дал мне только один результат. Поиск в библиотеке дал мне другое:
#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? Предполагая, что это экземпляр вашего шаблона класса, заявленное вами утверждение является законным, но не особенно полезным, и, конечно же, не является «вызовом» ни к чему. –
ничего себе ... Я думаю, Objective-C действительно отравил мой разум. Я не узнал доступ к ivar ... Спасибо, ребята. –
Я получил вниз за то, что был глупым !? Вау, спасибо. как будто '# define's и' templates' являются основами каждого языка программирования. –