Любая разница между (T)value
и T(value)
? Например, (float)3.14
и float(3.14)
. Что быстрее или лучше?Любая разница между (T) значением и T (значением)?
ответ
Они имеют точно такой же эффект и смысл:
ISO/IEC 14882: 2011 5.2.3 Явное преобразование типа (функциональное обозначение):
Простой типа-спецификатор (7.1.6.2) или typename-specifier (14.6), за которым следует заключенный в скобки список выражений, строит значение указанного типа с учетом списка выражений. Если список выражений является одним выражением, выражение преобразования типа эквивалентно (в определении и, если определено в значении) , к соответствующему выражению выражения (5.4).
5,4 является «Явное преобразование типа (литой обозначения)», то есть (Т) литой выражение.
Стоит отметить, что для некоторых типов (например, 'char *') используется только обозначение '(T) foo' законны. –
@ T.C .: для некоторых * обозначений * not type, поскольку мы все еще можем использовать 'typedef', а затем использовать' char_pointer (value) '. – Jarod42
@ Jarod42 Правда, я должен был быть более точным. Для типа, который не обозначается ни спецификатором простого типа *, ни * typename-specifier *, если быть точным. –
- 1. Разница между значением и средним значением (значение)
- 2. Разница между значением и значением item
- 3. (Idiomatic?) Разница между новыми (T) и & T {...}?
- 4. ограничивает значение T значением int?
- 5. Любая разница между угловым значением $ injection и аннотацией встроенного массива?
- 6. Какая разница между (* T) (nil) и & T {}/new (T)? Golang
- 7. Группа T-SQL с отличным значением
- 8. Любая разница между t <'a> и 'a t in F #?
- 9. Разница между потоком s-t, значением потока и максимальным потоком в сетевом потоке
- 10. В чем разница между строкой (значением) и значением как String?
- 11. Python - Pandas: разница между среднемесячным средним значением и среднемесячным значением
- 12. Разница между значением площади, вычисленным на Python, и фактическим значением
- 13. Разница между значением без знака и значением записи?
- 14. В чем разница между (типом) значением и типом (значением)?
- 15. Разница между переменной + = значением и переменной = переменной + значением;
- 16. Разница между строковым значением и двоичным значением в реестре
- 17. , что разница между classOf [T] и класс [T]
- 18. Разница между add_lvalue_reference_t <T> и T &
- 19. Разница между виртуальными ~ T() {} и виртуальными ~ T() = по умолчанию;
- 20. чем разница между мимолетными параметрами() => T и просто T
- 21. В чем разница между новыми (T) и & T {}?
- 22. Разница между статическим T const и static const T
- 23. Разница между T [N] и T [] в шаблонных специализациях?
- 24. Разница между t (: str) и t: str в ROR
- 25. В чем разница между T & и T * const?
- 26. Разница между T t {x} и T t = {x} для целочисленного или перечисляемого типа?
- 27. Xml.Serialization object T с значением атрибута
- 28. Разница между возвращаемым значением funciton
- 29. В чем разница между общим массивом и общим значением?
- 30. разница между значением, возвращаемым pthread_self() и gettid()
Значение '(T)' вводит 'значение' в T с использованием каста C-стиля, которая выполняет 4 разных приведения, а' T (value) 'пытается вызвать конструктор' T' с аргументом 'value' в качестве аргумента (Это может быть известным синтаксисом для вас, если вы когда-либо пробовали создавать конструкторы классов) – Creris
Итак, как правило, приведение должно выполняться быстрее, потому что оно выполняется в компиляции, правильно? float (a) caller, если a не известен в компиляции, поэтому он будет медленнее. – user1899020
для таких типов, как float, это не имеет значения. Я полагаю (я никогда не пытался посмотреть сборку, сравнивая два случая). – Creris