Это имеет значение, который быстрее, если они не делают того же самого? Сравнение производительности операторов с различным значением походит на плохую идею.
is
говорит Вам, если объект реализует ClassA
где-нибудь в его иерархии типа. GetType()
говорит Вам о больше-всего-производном-типе.
Не то же самое.
Концепции - это общая функция программирования, которая позволяет кому-либо, пишущему шаблонный код, указывать требования, которым должны удовлетворять параметры типа.
Например, некоторым типам коллекций требуется параметр типа для коллекции для определения оператора <. Таким образом, программист может определить концепцию LessThanComparable, которая сообщает компилятору, что для параметра типа шаблонного класса должен быть определен оператор <. Если пользователь шаблона затем пытается создать экземпляр шаблона, используя тип, не имеющий концепции LessThanComparable (то есть не имеющий функции operator <), компилятор может выдать простое сообщение об ошибке, а не поток сообщений об ошибках, связанных с шаблонным кодом. Компилятор также может использовать дополнительную информацию, предоставляемую концепциями, для создания более эффективного кода.
Это что-то вроде упрощения, но я думаю, что это дает вам общее представление о концепциях.
Если вы хотите Чтобы опробовать некоторые возможности концепций, взгляните на библиотеку Boost.Concept Check. Я не думаю, что он предоставляет полный набор возможностей, которые должны были быть в стандарте, но это хорошее место для начала.
Вы также можете посмотреть ConceptC ++ , там есть хороший определение понятий есть.
Концепция Проверить библиотеку. Я не думаю, что он предоставляет полный спектр возможностей, которые должны были быть в стандарте, но это хорошее место для начала.Вы также можете посмотреть ConceptC ++ , там есть хороший определение понятий есть.
Концепция Проверить библиотеку. Я не думаю, что он предоставляет полный спектр возможностей, которые должны были быть в стандарте, но это хорошее место для начала.Вы также можете посмотреть ConceptC ++ , там есть хороший определение понятий есть.
Вот статья, которая, я думаю, поможет:
http://www.devx.com/SpecialReports/Article/38864
Решение об их удалении обсуждалось несколько раз. раз здесь, в SO. Это может оказаться интересным: