КАК в D или d C++ проверить наличие элемента array[3][4] ?
Смотря что значит "наличие элемента в массиве". Если массив статический, то элемент там всегда наличествует. А если динамический, то в D можно проверить что такие индексы существуют, вот так например:

auto array = new int[10][20];

/* ... */

writeln(array.length);  // напишет 20
writeln(array[0].length); // напишет 10

// проверим, что есть элемент [3][4]
if ((array.length < 4) || (array[0].length < 3))
	writeln("fail"); // а вот это не напишет, значит элемент [3][4] доступен.

Ещё можно явно отлавливать исключение, когда читается несуществующий элемент:
auto array = new int[10][20];

/* ... */

bool isElementExist(int[10][] a, size_t indexA, size_t indexB)
{
	try { auto i = a[indexA][indexB]; }
	catch { return false; }
	return true;
}

/* ... */

writeln(isElementExist(array, 300, 4)); // false
writeln(isElementExist(array, 3, 4)); // true
В D без понятия, в C++ никак в принципе. Только если использовать контейнеры.

Да и если уж C и C++ разные языки программирования, то D вообще ничего общего с ними не имеет.