введите/оцените несоответствие в шаблонном объявлении класса C++ [дубликат]

Вы можете использовать приведенный ниже код. Возможно, вам потребуется настроить высоту и ширину в файле thumb_selector

<android.support.v7.widget.SwitchCompat
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="true"
    android:thumb="@drawable/thumb_selector"
    app:track="@drawable/track_selector" />

track_selector.xml

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <shape android:dither="true" android:shape="rectangle" android:useLevel="false" android:visible="true">
            <solid android:color="@color/light_pink" />
            <corners android:radius="50dp" />
            <size android:width="2dp" android:height="24dp" />
        </shape>
    </item>
    <item android:state_checked="false">
        <shape android:dither="true" android:shape="rectangle" android:useLevel="false" android:visible="true">

            <corners android:radius="50dp" />
            <size android:width="2dp" android:height="24dp" />
            <stroke
                android:width="2dp"
                android:color="@color/white" />
        </shape>
    </item>
</selector>

thumb_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false">
        <shape android:dither="true" android:shape="rectangle" android:useLevel="false" android:visible="true">
            <solid android:color="#ffffff" />
            <corners android:radius="100dp" />
            <size android:width="18dp" android:height="18dp" />
            <stroke android:width="4dp" android:color="#0000ffff" />
        </shape>
    </item>
</selector>
11
задан fido 9 May 2009 в 12:51
поделиться

2 ответа

Вам нужно написать typename перед std :: list <...> :: iterator , потому что итератор является вложенным типом, и вы пишете шаблон.

Изменить: без typename GCC предполагает (как требует стандарт), что итератор итератор на самом деле является статической переменной в списке , а не типом. Отсюда возникает ошибка «Несоответствие типа параметра».

21
ответ дан 3 December 2019 в 04:33
поделиться

Вашему коду необходимо ключевое слово "typename".

    std::map<const T, typename std::list<std::pair<T, long int> >::iterator> lookup_map_;
3
ответ дан 3 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: