Вопросы с тегом «implicit-conversion»

Преобразование объекта, переменной или значения из одного типа в другой, чтобы удовлетворить ограничению типа, без специального запроса этого преобразования с помощью синтаксиса языка.

2
Где Scala ищет последствия?
Неявный вопрос новичков в Scala , кажется: где же компилятор ищет implicits? Я имею в виду неявный, потому что вопрос никогда не кажется полностью сформированным, как будто не было слов для этого. :-) Например, откуда integralвзялись значения ниже? scala> import scala.math._ import scala.math._ scala> def foo[T](t: T)(implicit integral: Integral[T]) {println(integral)} …

4
Неявное преобразование Objective C теряет целочисленную точность «NSUInteger» (иначе «unsigned long») к предупреждению «int»
Я работаю над некоторыми упражнениями и получил предупреждение, в котором говорится: Неявное преобразование теряет целочисленную точность: «NSUInteger» (он же «unsigned long») в «int» #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSArray *myColors; int i; int count; myColors = @[@"Red", @"Green", @"Blue", @"Yellow"]; count = …


7
Почему я могу передать 1 как короткую, а не переменную int i?
Почему первая и вторая запись работает, но не последняя? Есть ли способ, которым я могу разрешить все 3 из них и определить, было ли это 1, (int) 1 или я передал? И действительно, почему один разрешен, но последний? Второе позволение, но не последнее действительно поражает меня. Демо, чтобы показать ошибку …


5
Как работает is_base_of?
Как работает следующий код? typedef char (&yes)[1]; typedef char (&no)[2]; template <typename B, typename D> struct Host { operator B*() const; operator D*(); }; template <typename B, typename D> struct is_base_of { template <typename T> static yes check(D*, T); static no check(B*, int); static const bool value = sizeof(check(Host<B,D>(), int())) …

2
Запрет функции, принимающей const std :: string & от принятия 0
Стоит тысячи слов: #include<string> #include<iostream> class SayWhat { public: SayWhat& operator[](const std::string& s) { std::cout<<"here\n"; // To make sure we fail on function entry std::cout<<s<<"\n"; return *this; } }; int main() { SayWhat ohNo; // ohNo[1]; // Does not compile. Logic prevails. ohNo[0]; // you didn't! this compiles. return 0; …

3
Неявное преобразование и класс типа
В Scala мы можем использовать как минимум два метода для модификации существующих или новых типов. Предположим, мы хотим выразить, что что-то можно количественно оценить с помощью Int. Мы можем определить следующую черту. Неявное преобразование trait Quantifiable{ def quantify: Int } И затем мы можем использовать неявные преобразования для количественной оценки, …


10
Почему printf («% f», 0); дать неопределенное поведение?
Заявление printf("%f\n",0.0f); печатает 0. Однако заявление printf("%f\n",0); печатает случайные значения. Я понимаю, что проявляю какое-то неопределенное поведение, но не могу понять почему. Значение с плавающей запятой, в котором все биты равны 0, по-прежнему допустимо floatсо значением 0. floatИ intимеет тот же размер на моей машине (если это вообще актуально). Почему …

4
Неявное преобразование не допускается при возврате
#include <optional> bool f() { std::optional<int> opt; return opt; } Не компилируется: 'return': cannot convert from 'std::optional<int>' to 'bool' Консультационная справка Я бы подумал найти объяснение, но я прочитал его, как должно быть в порядке. Неявные преобразования выполняются всякий раз, когда выражение некоторого типа T1 используется в контексте, которое не …


2
Вызов лямбда неоднозначен, несмотря на явное указание типа возврата
Перегруженная функция должна принимать оба функтора, учитывая, что тип лямбды можно разрешить (можно преобразовать в std::function(пожалуйста, исправьте меня, если я ошибаюсь). Вопрос в том, почему ниже приведена ошибка компиляции, несмотря на то, что лямбда-тип явно определен? ( [&]() -> Type {}) Обратите внимание, что для моего текущего решения мне нужен …

3
Как избежать неявных преобразований из int (0) в указатель в векторе
Есть ситуация, когда я хочу собрать все имена узлов пути к ключу в JSON. Рассмотрим условие индекса массива «0», «1» также допускается, но легко забыть кавычки, которые могут привести к сбою при разыменовании. Поэтому я хочу отказаться от этого. Пример: #include <vector> #include <iostream> int func(const std::vector<const char*>& pin) { …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.