Używanie tablicy init jako tymczasowej w C ++ 11?

Mogę utworzyć nazwaną zmienną z tablicą w następujący sposób:

char s[] = {1, 2, 3, 0};
if (strcmp(s, t))
    ...

Jednak poniższe nie działają:

if (strcmp(char[]{1,2,3,0}, t))
    ...

Czy jest jakiś sposób na określenie tymczasowej nienazwanej tablicy z listą inicjalizatora? (W tym przypadku działałby literał ciągu, ale dla tablic innych niż tablice char)?

Aktualizacja:

#include <iostream>
#include <cstring>

using namespace std;

typedef char CA[];

int main()
{
        cout << CA{1,2,3, 0} << endl;
}

dajeerror: taking address of temporary array (g++-4.7.2 -std=gnu++11)

Aktualizacja 2:

Myślę, że (być może) dzieje się tak, że literały ciągów są szczególnie błogosławionelwartości, jednak tymczasowe tablice sąwartościi jako taki nie możesz wziąć ich adresu. Jest to jednak szalone przypuszczenie, nie jestem pewien.

Aktualizacja 3:

Właściwie to powinno być złe myślę:

Wartość l lub wartość typu „tablica N T” lub „tablica nieznanej granicy T” można przekonwertować na wartość typu „pointer to T”. Wynik jest wskaźnikiem do pierwszego elementu tablicy.

questionAnswers(3)

yourAnswerToTheQuestion